From ee90d51bd30f0902ed5d72cca8bbcb0d79eacd8e Mon Sep 17 00:00:00 2001 From: Buildkite CI Date: Tue, 6 Oct 2026 15:21:51 +0000 Subject: [PATCH 1/2] chore: sync generated SDK from upstream @ f81105f9 Generated upstream and copied here. Do not edit in this repository; changes are overwritten by the next sync. --- .speakeasy/connector-id-or-name-overlay.yaml | 11 + .speakeasy/gen.lock | 1390 ++++++++++++++--- .speakeasy/gen.yaml | 2 +- .speakeasy/workflow.lock | 12 +- MIGRATION.md | 15 - README-PYPI.md | 54 +- README.md | 54 +- RELEASES.md | 128 ++ docs/models/authdirection.md | 14 - docs/models/authenticationconfiguration.md | 2 +- ...thenticationmethodcreateorupdaterequest.md | 3 +- ...nticationtype.md => authenticationtype.md} | 6 +- docs/models/average.md | 19 + docs/models/categoricalstatistics.md | 14 + docs/models/classificationstatisticspec.md | 21 + .../models/classificationstatisticspeckind.md | 19 + ...runsv2runidstatisticscomputepostrequest.md | 9 + docs/models/confusionmatrix.md | 15 + docs/models/connectorgetauthurlv1request.md | 2 +- ...torlistorganizationcredentialsv1request.md | 10 +- .../connectorlistusercredentialsv1request.md | 10 +- ...nectorlistworkspacecredentialsv1request.md | 10 +- docs/models/contentchunk.md | 12 + docs/models/contentsearchfilter.md | 10 + docs/models/contentsearchfiltergroup.md | 9 + docs/models/contentsearchoperator.md | 14 + ...litydatasetsdatasetidrecordspostrequest.md | 8 +- docs/models/credentialsresponse.md | 2 +- docs/models/dataset.md | 1 + docs/models/datasetpreview.md | 1 + ...rvabilitydatasetsdatasetiddeleterequest.md | 6 +- docs/models/direction.md | 14 - docs/models/evaluationrunfilterinput.md | 17 + docs/models/evaluationrungenerationv2.md | 18 + docs/models/evaluationrunoutputrecordv2.md | 16 + docs/models/evaluationrunrecordfilterinput.md | 12 + docs/models/evaluationrunrecordv2response.md | 14 + docs/models/evaluationrunscorev2.md | 16 + docs/models/evaluationrunv2response.md | 29 + .../models/evaluationrunv2withrefsresponse.md | 31 + docs/models/evaluationsv2.md | 8 + docs/models/evaluationv2.md | 20 + docs/models/evaluatorstatistics.md | 23 + docs/models/evaluatorv2.md | 22 + docs/models/evaluatorv2direction.md | 18 + ...tasetsdatasetidexportstojsonlgetrequest.md | 6 +- docs/models/fieldsortinput.md | 10 + docs/models/filepurpose.md | 1 + docs/models/filtercombinator.md | 14 + ...bservabilitydatasetsdatasetidgetrequest.md | 6 +- ...abilitydatasetsdatasetidtasksgetrequest.md | 10 +- ...ydatasetsdatasetidtaskstaskidgetrequest.md | 8 +- ...ilitydatasetsdatasetidrecordsgetrequest.md | 10 +- ...ionrunsv2runidrecordsrecordidgetrequest.md | 9 + ...vabilityevaluationrunsv2runidgetrequest.md | 8 + ...tyevaluationsv2evaluationsluggetrequest.md | 8 + ...tyoptimizationsoptimizationidgetrequest.md | 8 + ...jectsprojectslugevaluationsv2getrequest.md | 10 + ...ojectsv1observabilityprojectsgetrequest.md | 10 + ...ervabilityprojectsprojectsluggetrequest.md | 8 + ...aluationrunsv2runidstatisticsgetrequest.md | 8 + ...tionsv1workflowsregistrationsgetrequest.md | 1 + docs/models/goalresult.md | 9 + docs/models/goalresultitem.md | 15 + docs/models/goalresultitemdirection.md | 18 + docs/models/goalspec.md | 13 + docs/models/goalstatus.md | 15 + docs/models/goalstatusfilter.md | 9 + docs/models/goalstatusfiltergroup.md | 9 + docs/models/httpconnector.md | 1 - docs/models/inboundauthenticationtype.md | 13 - docs/models/ipaphoneme.md | 69 + .../listevaluationrunrecordsresponse.md | 8 + docs/models/listevaluationrunsresponse.md | 8 + docs/models/listoptimizationsresponse.md | 8 + ...sv1observabilityoptimizationsgetrequest.md | 14 + docs/models/listoptimizationtrialsresponse.md | 8 + ...mizationsoptimizationidtrialsgetrequest.md | 10 + docs/models/mcpconnector.md | 1 - docs/models/metadata.md | 29 + docs/models/metadatafilter.md | 10 + docs/models/metadatafiltergroup.md | 9 + docs/models/metadatafiltervalue.md | 23 + docs/models/methodtype.md | 19 - docs/models/numericscoremetric.md | 16 + docs/models/numericstatistics.md | 15 + .../oauth2authorizationcodeauthmethod.md | 14 +- .../oauth2clientcredentialsauthmethod.md | 4 +- docs/models/observabilityerrorcode.md | 2 + docs/models/optimization.md | 25 + docs/models/optimizationdetail.md | 27 + docs/models/optimizationreference.md | 10 + docs/models/optimizationtrialobservation.md | 11 + .../optimizationtrialwithobservations.md | 19 + docs/models/orderbyclause.md | 8 +- docs/models/orderbyclausedirection.md | 14 + ...atedresultevaluationrunrecordv2response.md | 11 + .../paginatedresultevaluationrunv2response.md | 11 + ...edresultevaluationrunv2withrefsresponse.md | 11 + docs/models/paginatedresultevaluationv2.md | 11 + docs/models/paginatedresultoptimization.md | 11 + ...resultoptimizationtrialwithobservations.md | 11 + docs/models/paginatedresultproject.md | 11 + docs/models/params.md | 29 + docs/models/percentile.md | 17 + docs/models/percentilestatisticspec.md | 12 + ...sdatasetidimportsfromdatasetpostrequest.md | 8 +- ...setsdatasetidimportsfromfilepostrequest.md | 8 +- ...tasetidimportsfromplaygroundpostrequest.md | 8 +- ...etsdatasetidimportsfromspanspostrequest.md | 8 +- docs/models/project.md | 18 + docs/models/projectevaluationsummary.md | 13 + docs/models/projects.md | 8 + docs/models/publicauthenticationmethod.md | 2 +- docs/models/recordsortfield.md | 13 + docs/models/resourcechunk.md | 10 + docs/models/resourcechunkcontent.md | 17 + docs/models/resourcelinkchunk.md | 10 + docs/models/runevaluationsummary.md | 10 + docs/models/runoptimizationref.md | 14 + docs/models/runownershipfilter.md | 23 + docs/models/runprojectsummary.md | 10 + docs/models/runstatisticsresponse.md | 11 + docs/models/scalarstatisticvalue.md | 18 + docs/models/scorefilter.md | 11 + docs/models/scorefiltergroup.md | 9 + docs/models/scorefiltervalue.md | 17 + docs/models/scoreoperator.md | 17 + docs/models/scoresortinput.md | 11 + .../models/searchallevaluationrunsresponse.md | 8 + ...bilityevaluationrunsv2searchpostrequest.md | 10 + ...tionrunsv2runidrecordssearchpostrequest.md | 11 + ...nsv2evaluationslugrunssearchpostrequest.md | 11 + docs/models/simplenumericstatisticspec.md | 11 + docs/models/simplenumericstatisticspeckind.md | 22 + docs/models/sort.md | 17 + docs/models/sortdirection.md | 14 + docs/models/speechrequest.md | 23 +- docs/models/statistic.md | 65 + docs/models/systemfilter.md | 9 + docs/models/systemnamefilter.md | 9 + docs/models/systemnamefiltergroup.md | 9 + docs/models/systemparamfilter.md | 10 + docs/models/systemparamfiltergroup.md | 9 + docs/models/systemparamfiltervalue.md | 23 + docs/models/systemparamoperator.md | 18 + docs/models/systemv2.md | 13 + docs/models/tagfilter.md | 9 + docs/models/unsupportedstatistics.md | 9 + ...ervabilitydatasetsdatasetidpatchrequest.md | 8 +- docs/models/updatepipelinerequest.md | 8 +- docs/models/voicekind.md | 18 + docs/models/voiceresponse.md | 1 + docs/sdks/agents/README.md | 2 +- docs/sdks/betaagents/README.md | 6 +- docs/sdks/chat/README.md | 2 +- docs/sdks/connectors/README.md | 38 +- docs/sdks/conversations/README.md | 8 +- docs/sdks/datasets/README.md | 108 +- .../{records => datasetsrecords}/README.md | 0 docs/sdks/evaluations/README.md | 100 +- docs/sdks/evaluationsprojects/README.md | 92 ++ docs/sdks/evaluationsrecords/README.md | 98 ++ docs/sdks/evaluationsruns/README.md | 235 +++ docs/sdks/files/README.md | 2 +- docs/sdks/fim/README.md | 2 +- docs/sdks/optimizations/README.md | 140 ++ docs/sdks/speech/README.md | 25 +- docs/sdks/transcriptions/README.md | 2 +- docs/sdks/workflows/README.md | 1 + docs/sdks/{runs => workflowsruns}/README.md | 0 packages/gcp/uv.lock | 6 +- pyproject.toml | 2 +- src/mistralai/client/_version.py | 4 +- src/mistralai/client/connectors.py | 38 +- src/mistralai/client/datasets.py | 60 +- .../{records.py => datasets_records.py} | 2 +- src/mistralai/client/evaluations.py | 483 +++++- src/mistralai/client/evaluations_projects.py | 403 +++++ src/mistralai/client/evaluations_records.py | 513 ++++++ src/mistralai/client/evaluations_runs.py | 1245 +++++++++++++++ src/mistralai/client/models/__init__.py | 707 ++++++++- .../models/authenticationconfiguration.py | 6 +- ...thenticationmethodcreateorupdaterequest.py | 30 +- ...nticationtype.py => authenticationtype.py} | 2 +- .../client/models/categoricalstatistics.py | 81 + .../models/classificationstatisticspec.py | 103 ++ ...uns_v2_run_id_statistics_compute_postop.py | 64 + .../client/models/confusionmatrix.py | 31 + .../models/connector_get_auth_url_v1op.py | 6 +- ...ctor_list_organization_credentials_v1op.py | 6 +- .../connector_list_user_credentials_v1op.py | 6 +- ...nnector_list_workspace_credentials_v1op.py | 6 +- src/mistralai/client/models/contentchunk.py | 8 + .../client/models/contentsearchfilter.py | 53 + .../client/models/contentsearchfiltergroup.py | 36 + .../client/models/contentsearchoperator.py | 10 + ...lity_datasets_dataset_id_records_postop.py | 2 + .../client/models/credentialsresponse.py | 8 +- src/mistralai/client/models/dataset.py | 3 + src/mistralai/client/models/datasetpreview.py | 3 + ...ervability_datasets_dataset_id_deleteop.py | 2 + .../client/models/evaluationrunfilterinput.py | 105 ++ .../models/evaluationrungenerationv2.py | 87 ++ .../models/evaluationrunoutputrecordv2.py | 86 + .../models/evaluationrunrecordfilterinput.py | 78 + .../models/evaluationrunrecordv2response.py | 69 + .../client/models/evaluationrunscorev2.py | 78 + .../client/models/evaluationrunv2response.py | 146 ++ .../models/evaluationrunv2withrefsresponse.py | 158 ++ src/mistralai/client/models/evaluationsv2.py | 17 + src/mistralai/client/models/evaluationv2.py | 84 + .../client/models/evaluatorstatistics.py | 24 + src/mistralai/client/models/evaluatorv2.py | 196 +++ ...asets_dataset_id_exports_to_jsonl_getop.py | 2 + src/mistralai/client/models/fieldsortinput.py | 51 + src/mistralai/client/models/filepurpose.py | 1 + .../{authdirection.py => filtercombinator.py} | 6 +- ...observability_datasets_dataset_id_getop.py | 2 + ...datasets_dataset_id_tasks_task_id_getop.py | 2 + ...ability_datasets_dataset_id_tasks_getop.py | 2 + ...ility_datasets_dataset_id_records_getop.py | 2 + ..._runs_v2_run_id_records_record_id_getop.py | 25 + ...ability_evaluation_runs_v2_run_id_getop.py | 18 + ...ty_evaluations_v2_evaluation_slug_getop.py | 18 + ...ity_optimizations_optimization_id_getop.py | 18 + ...jects_project_slug_evaluations_v2_getop.py | 50 + ...servability_projects_project_slug_getop.py | 16 + ...rojects_v1_observability_projects_getop.py | 64 + ...luation_runs_v2_run_id_statistics_getop.py | 20 + ...ations_v1_workflows_registrations_getop.py | 10 + src/mistralai/client/models/goalresult.py | 33 + src/mistralai/client/models/goalresultitem.py | 77 + src/mistralai/client/models/goalspec.py | 61 + src/mistralai/client/models/goalstatus.py | 11 + .../client/models/goalstatusfilter.py | 50 + .../client/models/goalstatusfiltergroup.py | 36 + src/mistralai/client/models/httpconnector.py | 5 - src/mistralai/client/models/ipaphoneme.py | 65 + ...imizations_optimization_id_trials_getop.py | 50 + ...ns_v1_observability_optimizations_getop.py | 106 ++ .../listevaluationrunrecordsresponse.py | 17 + .../models/listevaluationrunsresponse.py | 17 + .../models/listoptimizationsresponse.py | 17 + .../models/listoptimizationtrialsresponse.py | 17 + src/mistralai/client/models/mcpconnector.py | 5 - src/mistralai/client/models/metadatafilter.py | 29 + .../client/models/metadatafiltergroup.py | 36 + .../client/models/numericscoremetric.py | 12 + .../client/models/numericstatistics.py | 84 + .../oauth2authorizationcodeauthmethod.py | 22 +- .../oauth2clientcredentialsauthmethod.py | 6 +- .../client/models/observabilityerrorcode.py | 2 + src/mistralai/client/models/optimization.py | 120 ++ .../client/models/optimizationdetail.py | 131 ++ .../client/models/optimizationreference.py | 19 + .../models/optimizationtrialobservation.py | 59 + .../optimizationtrialwithobservations.py | 95 ++ src/mistralai/client/models/orderbyclause.py | 6 +- ...atedresultevaluationrunrecordv2response.py | 59 + .../paginatedresultevaluationrunv2response.py | 59 + ...edresultevaluationrunv2withrefsresponse.py | 59 + .../models/paginatedresultevaluationv2.py | 56 + .../models/paginatedresultoptimization.py | 56 + ...resultoptimizationtrialwithobservations.py | 59 + .../client/models/paginatedresultproject.py | 56 + .../client/models/percentilestatisticspec.py | 75 + ..._dataset_id_imports_from_dataset_postop.py | 2 + ...ets_dataset_id_imports_from_file_postop.py | 2 + ...taset_id_imports_from_playground_postop.py | 2 + ...ts_dataset_id_imports_from_spans_postop.py | 2 + src/mistralai/client/models/project.py | 75 + .../client/models/projectevaluationsummary.py | 27 + src/mistralai/client/models/projects.py | 17 + .../models/publicauthenticationmethod.py | 6 +- ...thenticationtype.py => recordsortfield.py} | 2 +- src/mistralai/client/models/resourcechunk.py | 72 + .../client/models/resourcelinkchunk.py | 72 + .../client/models/runevaluationsummary.py | 19 + .../client/models/runoptimizationref.py | 28 + .../client/models/runownershipfilter.py | 69 + .../client/models/runprojectsummary.py | 19 + .../client/models/runstatisticsresponse.py | 57 + .../client/models/scalarstatisticvalue.py | 84 + src/mistralai/client/models/scorefilter.py | 32 + .../client/models/scorefiltergroup.py | 36 + src/mistralai/client/models/scoreoperator.py | 13 + src/mistralai/client/models/scoresortinput.py | 54 + ...bility_evaluation_runs_v2_search_postop.py | 72 + ...on_runs_v2_run_id_records_search_postop.py | 82 + ...s_v2_evaluation_slug_runs_search_postop.py | 82 + .../models/searchallevaluationrunsresponse.py | 17 + .../models/simplenumericstatisticspec.py | 68 + src/mistralai/client/models/sortdirection.py | 10 + src/mistralai/client/models/speechrequest.py | 18 +- src/mistralai/client/models/systemfilter.py | 53 + .../client/models/systemnamefilter.py | 35 + .../client/models/systemnamefiltergroup.py | 36 + .../client/models/systemparamfilter.py | 31 + .../client/models/systemparamfiltergroup.py | 36 + .../client/models/systemparamoperator.py | 14 + src/mistralai/client/models/systemv2.py | 51 + src/mistralai/client/models/tagfilter.py | 35 + .../client/models/unsupportedstatistics.py | 49 + ...servability_datasets_dataset_id_patchop.py | 2 + .../client/models/updatepipelinerequest.py | 24 +- src/mistralai/client/models/voicekind.py | 14 + src/mistralai/client/models/voiceresponse.py | 5 + src/mistralai/client/optimizations.py | 637 ++++++++ src/mistralai/client/speech.py | 50 +- src/mistralai/client/workflows.py | 12 +- .../client/{runs.py => workflows_runs.py} | 2 +- src/mistralai/extra/connectors_gateway.py | 10 +- .../fixtures/workflow_encryption_parity.py | 329 ++++ .../fixtures/workflow_offloading_parity.py | 308 ++++ .../extra/tests/test_connector_auth.py | 258 +++ .../extra/tests/test_connectors_gateway.py | 66 +- .../tests/test_workflow_encryption_parity.py | 21 + .../tests/test_workflow_offloading_parity.py | 23 + .../extra/workflows/connector_auth.py | 8 +- uv.lock | 317 ++-- 321 files changed, 14007 insertions(+), 863 deletions(-) create mode 100644 .speakeasy/connector-id-or-name-overlay.yaml delete mode 100644 docs/models/authdirection.md rename docs/models/{outboundauthenticationtype.md => authenticationtype.md} (64%) create mode 100644 docs/models/average.md create mode 100644 docs/models/categoricalstatistics.md create mode 100644 docs/models/classificationstatisticspec.md create mode 100644 docs/models/classificationstatisticspeckind.md create mode 100644 docs/models/computefilteredrunstatisticsv2v1observabilityevaluationrunsv2runidstatisticscomputepostrequest.md create mode 100644 docs/models/confusionmatrix.md create mode 100644 docs/models/contentsearchfilter.md create mode 100644 docs/models/contentsearchfiltergroup.md create mode 100644 docs/models/contentsearchoperator.md delete mode 100644 docs/models/direction.md create mode 100644 docs/models/evaluationrunfilterinput.md create mode 100644 docs/models/evaluationrungenerationv2.md create mode 100644 docs/models/evaluationrunoutputrecordv2.md create mode 100644 docs/models/evaluationrunrecordfilterinput.md create mode 100644 docs/models/evaluationrunrecordv2response.md create mode 100644 docs/models/evaluationrunscorev2.md create mode 100644 docs/models/evaluationrunv2response.md create mode 100644 docs/models/evaluationrunv2withrefsresponse.md create mode 100644 docs/models/evaluationsv2.md create mode 100644 docs/models/evaluationv2.md create mode 100644 docs/models/evaluatorstatistics.md create mode 100644 docs/models/evaluatorv2.md create mode 100644 docs/models/evaluatorv2direction.md create mode 100644 docs/models/fieldsortinput.md create mode 100644 docs/models/filtercombinator.md create mode 100644 docs/models/getevaluationrunrecordv2v1observabilityevaluationrunsv2runidrecordsrecordidgetrequest.md create mode 100644 docs/models/getevaluationrunv2v1observabilityevaluationrunsv2runidgetrequest.md create mode 100644 docs/models/getevaluationv2v1observabilityevaluationsv2evaluationsluggetrequest.md create mode 100644 docs/models/getoptimizationv1observabilityoptimizationsoptimizationidgetrequest.md create mode 100644 docs/models/getprojectevaluationsv2v1observabilityprojectsprojectslugevaluationsv2getrequest.md create mode 100644 docs/models/getprojectsv1observabilityprojectsgetrequest.md create mode 100644 docs/models/getprojectv1observabilityprojectsprojectsluggetrequest.md create mode 100644 docs/models/getsingleevaluationrunstatisticsv2v1observabilityevaluationrunsv2runidstatisticsgetrequest.md create mode 100644 docs/models/goalresult.md create mode 100644 docs/models/goalresultitem.md create mode 100644 docs/models/goalresultitemdirection.md create mode 100644 docs/models/goalspec.md create mode 100644 docs/models/goalstatus.md create mode 100644 docs/models/goalstatusfilter.md create mode 100644 docs/models/goalstatusfiltergroup.md delete mode 100644 docs/models/inboundauthenticationtype.md create mode 100644 docs/models/ipaphoneme.md create mode 100644 docs/models/listevaluationrunrecordsresponse.md create mode 100644 docs/models/listevaluationrunsresponse.md create mode 100644 docs/models/listoptimizationsresponse.md create mode 100644 docs/models/listoptimizationsv1observabilityoptimizationsgetrequest.md create mode 100644 docs/models/listoptimizationtrialsresponse.md create mode 100644 docs/models/listoptimizationtrialsv1observabilityoptimizationsoptimizationidtrialsgetrequest.md create mode 100644 docs/models/metadata.md create mode 100644 docs/models/metadatafilter.md create mode 100644 docs/models/metadatafiltergroup.md create mode 100644 docs/models/metadatafiltervalue.md delete mode 100644 docs/models/methodtype.md create mode 100644 docs/models/numericscoremetric.md create mode 100644 docs/models/numericstatistics.md create mode 100644 docs/models/optimization.md create mode 100644 docs/models/optimizationdetail.md create mode 100644 docs/models/optimizationreference.md create mode 100644 docs/models/optimizationtrialobservation.md create mode 100644 docs/models/optimizationtrialwithobservations.md create mode 100644 docs/models/orderbyclausedirection.md create mode 100644 docs/models/paginatedresultevaluationrunrecordv2response.md create mode 100644 docs/models/paginatedresultevaluationrunv2response.md create mode 100644 docs/models/paginatedresultevaluationrunv2withrefsresponse.md create mode 100644 docs/models/paginatedresultevaluationv2.md create mode 100644 docs/models/paginatedresultoptimization.md create mode 100644 docs/models/paginatedresultoptimizationtrialwithobservations.md create mode 100644 docs/models/paginatedresultproject.md create mode 100644 docs/models/params.md create mode 100644 docs/models/percentile.md create mode 100644 docs/models/percentilestatisticspec.md create mode 100644 docs/models/project.md create mode 100644 docs/models/projectevaluationsummary.md create mode 100644 docs/models/projects.md create mode 100644 docs/models/recordsortfield.md create mode 100644 docs/models/resourcechunk.md create mode 100644 docs/models/resourcechunkcontent.md create mode 100644 docs/models/resourcelinkchunk.md create mode 100644 docs/models/runevaluationsummary.md create mode 100644 docs/models/runoptimizationref.md create mode 100644 docs/models/runownershipfilter.md create mode 100644 docs/models/runprojectsummary.md create mode 100644 docs/models/runstatisticsresponse.md create mode 100644 docs/models/scalarstatisticvalue.md create mode 100644 docs/models/scorefilter.md create mode 100644 docs/models/scorefiltergroup.md create mode 100644 docs/models/scorefiltervalue.md create mode 100644 docs/models/scoreoperator.md create mode 100644 docs/models/scoresortinput.md create mode 100644 docs/models/searchallevaluationrunsresponse.md create mode 100644 docs/models/searchallevaluationrunsv2v1observabilityevaluationrunsv2searchpostrequest.md create mode 100644 docs/models/searchevaluationrunrecordsv2v1observabilityevaluationrunsv2runidrecordssearchpostrequest.md create mode 100644 docs/models/searchevaluationrunsv2v1observabilityevaluationsv2evaluationslugrunssearchpostrequest.md create mode 100644 docs/models/simplenumericstatisticspec.md create mode 100644 docs/models/simplenumericstatisticspeckind.md create mode 100644 docs/models/sort.md create mode 100644 docs/models/sortdirection.md create mode 100644 docs/models/statistic.md create mode 100644 docs/models/systemfilter.md create mode 100644 docs/models/systemnamefilter.md create mode 100644 docs/models/systemnamefiltergroup.md create mode 100644 docs/models/systemparamfilter.md create mode 100644 docs/models/systemparamfiltergroup.md create mode 100644 docs/models/systemparamfiltervalue.md create mode 100644 docs/models/systemparamoperator.md create mode 100644 docs/models/systemv2.md create mode 100644 docs/models/tagfilter.md create mode 100644 docs/models/unsupportedstatistics.md create mode 100644 docs/models/voicekind.md rename docs/sdks/{records => datasetsrecords}/README.md (100%) create mode 100644 docs/sdks/evaluationsprojects/README.md create mode 100644 docs/sdks/evaluationsrecords/README.md create mode 100644 docs/sdks/evaluationsruns/README.md create mode 100644 docs/sdks/optimizations/README.md rename docs/sdks/{runs => workflowsruns}/README.md (100%) rename src/mistralai/client/{records.py => datasets_records.py} (99%) create mode 100644 src/mistralai/client/evaluations_projects.py create mode 100644 src/mistralai/client/evaluations_records.py create mode 100644 src/mistralai/client/evaluations_runs.py rename src/mistralai/client/models/{outboundauthenticationtype.py => authenticationtype.py} (90%) create mode 100644 src/mistralai/client/models/categoricalstatistics.py create mode 100644 src/mistralai/client/models/classificationstatisticspec.py create mode 100644 src/mistralai/client/models/compute_filtered_run_statistics_v2_v1_observability_evaluation_runs_v2_run_id_statistics_compute_postop.py create mode 100644 src/mistralai/client/models/confusionmatrix.py create mode 100644 src/mistralai/client/models/contentsearchfilter.py create mode 100644 src/mistralai/client/models/contentsearchfiltergroup.py create mode 100644 src/mistralai/client/models/contentsearchoperator.py create mode 100644 src/mistralai/client/models/evaluationrunfilterinput.py create mode 100644 src/mistralai/client/models/evaluationrungenerationv2.py create mode 100644 src/mistralai/client/models/evaluationrunoutputrecordv2.py create mode 100644 src/mistralai/client/models/evaluationrunrecordfilterinput.py create mode 100644 src/mistralai/client/models/evaluationrunrecordv2response.py create mode 100644 src/mistralai/client/models/evaluationrunscorev2.py create mode 100644 src/mistralai/client/models/evaluationrunv2response.py create mode 100644 src/mistralai/client/models/evaluationrunv2withrefsresponse.py create mode 100644 src/mistralai/client/models/evaluationsv2.py create mode 100644 src/mistralai/client/models/evaluationv2.py create mode 100644 src/mistralai/client/models/evaluatorstatistics.py create mode 100644 src/mistralai/client/models/evaluatorv2.py create mode 100644 src/mistralai/client/models/fieldsortinput.py rename src/mistralai/client/models/{authdirection.py => filtercombinator.py} (71%) create mode 100644 src/mistralai/client/models/get_evaluation_run_record_v2_v1_observability_evaluation_runs_v2_run_id_records_record_id_getop.py create mode 100644 src/mistralai/client/models/get_evaluation_run_v2_v1_observability_evaluation_runs_v2_run_id_getop.py create mode 100644 src/mistralai/client/models/get_evaluation_v2_v1_observability_evaluations_v2_evaluation_slug_getop.py create mode 100644 src/mistralai/client/models/get_optimization_v1_observability_optimizations_optimization_id_getop.py create mode 100644 src/mistralai/client/models/get_project_evaluations_v2_v1_observability_projects_project_slug_evaluations_v2_getop.py create mode 100644 src/mistralai/client/models/get_project_v1_observability_projects_project_slug_getop.py create mode 100644 src/mistralai/client/models/get_projects_v1_observability_projects_getop.py create mode 100644 src/mistralai/client/models/get_single_evaluation_run_statistics_v2_v1_observability_evaluation_runs_v2_run_id_statistics_getop.py create mode 100644 src/mistralai/client/models/goalresult.py create mode 100644 src/mistralai/client/models/goalresultitem.py create mode 100644 src/mistralai/client/models/goalspec.py create mode 100644 src/mistralai/client/models/goalstatus.py create mode 100644 src/mistralai/client/models/goalstatusfilter.py create mode 100644 src/mistralai/client/models/goalstatusfiltergroup.py create mode 100644 src/mistralai/client/models/ipaphoneme.py create mode 100644 src/mistralai/client/models/list_optimization_trials_v1_observability_optimizations_optimization_id_trials_getop.py create mode 100644 src/mistralai/client/models/list_optimizations_v1_observability_optimizations_getop.py create mode 100644 src/mistralai/client/models/listevaluationrunrecordsresponse.py create mode 100644 src/mistralai/client/models/listevaluationrunsresponse.py create mode 100644 src/mistralai/client/models/listoptimizationsresponse.py create mode 100644 src/mistralai/client/models/listoptimizationtrialsresponse.py create mode 100644 src/mistralai/client/models/metadatafilter.py create mode 100644 src/mistralai/client/models/metadatafiltergroup.py create mode 100644 src/mistralai/client/models/numericscoremetric.py create mode 100644 src/mistralai/client/models/numericstatistics.py create mode 100644 src/mistralai/client/models/optimization.py create mode 100644 src/mistralai/client/models/optimizationdetail.py create mode 100644 src/mistralai/client/models/optimizationreference.py create mode 100644 src/mistralai/client/models/optimizationtrialobservation.py create mode 100644 src/mistralai/client/models/optimizationtrialwithobservations.py create mode 100644 src/mistralai/client/models/paginatedresultevaluationrunrecordv2response.py create mode 100644 src/mistralai/client/models/paginatedresultevaluationrunv2response.py create mode 100644 src/mistralai/client/models/paginatedresultevaluationrunv2withrefsresponse.py create mode 100644 src/mistralai/client/models/paginatedresultevaluationv2.py create mode 100644 src/mistralai/client/models/paginatedresultoptimization.py create mode 100644 src/mistralai/client/models/paginatedresultoptimizationtrialwithobservations.py create mode 100644 src/mistralai/client/models/paginatedresultproject.py create mode 100644 src/mistralai/client/models/percentilestatisticspec.py create mode 100644 src/mistralai/client/models/project.py create mode 100644 src/mistralai/client/models/projectevaluationsummary.py create mode 100644 src/mistralai/client/models/projects.py rename src/mistralai/client/models/{inboundauthenticationtype.py => recordsortfield.py} (74%) create mode 100644 src/mistralai/client/models/resourcechunk.py create mode 100644 src/mistralai/client/models/resourcelinkchunk.py create mode 100644 src/mistralai/client/models/runevaluationsummary.py create mode 100644 src/mistralai/client/models/runoptimizationref.py create mode 100644 src/mistralai/client/models/runownershipfilter.py create mode 100644 src/mistralai/client/models/runprojectsummary.py create mode 100644 src/mistralai/client/models/runstatisticsresponse.py create mode 100644 src/mistralai/client/models/scalarstatisticvalue.py create mode 100644 src/mistralai/client/models/scorefilter.py create mode 100644 src/mistralai/client/models/scorefiltergroup.py create mode 100644 src/mistralai/client/models/scoreoperator.py create mode 100644 src/mistralai/client/models/scoresortinput.py create mode 100644 src/mistralai/client/models/search_all_evaluation_runs_v2_v1_observability_evaluation_runs_v2_search_postop.py create mode 100644 src/mistralai/client/models/search_evaluation_run_records_v2_v1_observability_evaluation_runs_v2_run_id_records_search_postop.py create mode 100644 src/mistralai/client/models/search_evaluation_runs_v2_v1_observability_evaluations_v2_evaluation_slug_runs_search_postop.py create mode 100644 src/mistralai/client/models/searchallevaluationrunsresponse.py create mode 100644 src/mistralai/client/models/simplenumericstatisticspec.py create mode 100644 src/mistralai/client/models/sortdirection.py create mode 100644 src/mistralai/client/models/systemfilter.py create mode 100644 src/mistralai/client/models/systemnamefilter.py create mode 100644 src/mistralai/client/models/systemnamefiltergroup.py create mode 100644 src/mistralai/client/models/systemparamfilter.py create mode 100644 src/mistralai/client/models/systemparamfiltergroup.py create mode 100644 src/mistralai/client/models/systemparamoperator.py create mode 100644 src/mistralai/client/models/systemv2.py create mode 100644 src/mistralai/client/models/tagfilter.py create mode 100644 src/mistralai/client/models/unsupportedstatistics.py create mode 100644 src/mistralai/client/models/voicekind.py create mode 100644 src/mistralai/client/optimizations.py rename src/mistralai/client/{runs.py => workflows_runs.py} (99%) create mode 100644 src/mistralai/extra/tests/fixtures/workflow_encryption_parity.py create mode 100644 src/mistralai/extra/tests/fixtures/workflow_offloading_parity.py create mode 100644 src/mistralai/extra/tests/test_connector_auth.py create mode 100644 src/mistralai/extra/tests/test_workflow_encryption_parity.py create mode 100644 src/mistralai/extra/tests/test_workflow_offloading_parity.py diff --git a/.speakeasy/connector-id-or-name-overlay.yaml b/.speakeasy/connector-id-or-name-overlay.yaml new file mode 100644 index 000000000..21d4b11c0 --- /dev/null +++ b/.speakeasy/connector-id-or-name-overlay.yaml @@ -0,0 +1,11 @@ +overlay: 1.0.0 +info: + title: Keep connector ID-or-name parameters as strings + version: 1.0.0 +actions: + - target: $.paths..[?(@.name == 'connector_id_or_name')].schema.anyOf + description: Connector names are not UUIDs, so this parameter cannot be UUID-only. + remove: true + - target: $.paths..[?(@.name == 'connector_id_or_name')].schema + update: + type: string diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 52d114cf5..13a3d7204 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,19 +1,19 @@ lockVersion: 2.0.0 id: 2d045ec7-2ebb-4f4d-ad25-40953b132161 management: - docChecksum: 4f9ba5008713fd0bd2864dd6eac5780a + docChecksum: a4dd8c134c40d6012ac7b618f8e1948b docVersion: 1.0.0 speakeasyVersion: 1.796.4 generationVersion: 2.935.1 - releaseVersion: 3.0.0 - configChecksum: 2da9d88237906b32d6ef9434cf403af7 + releaseVersion: 3.1.0 + configChecksum: 2c1bf99b54c81ba37bea26fff0249de0 repoURL: https://github.com/mistralai/client-python.git installationURL: https://github.com/mistralai/client-python.git published: true persistentEdits: - generation_id: d26ba3b0-97aa-4b45-ade0-89d30e488815 - pristine_commit_hash: d9d722b95db47326800414c20c9480082d4690c5 - pristine_tree_hash: 731210a5b737d1965e4f501d7225497578856cff + generation_id: c9a78e21-1558-46ac-ba07-da91bc85e31f + pristine_commit_hash: 19b05c4198cdfac2d608295481cf91fc3650d401 + pristine_tree_hash: a872f68942df31b6c76d96eb7bfebeb08f8ad87b features: python: acceptHeaders: 3.0.0 @@ -403,18 +403,18 @@ trackedFiles: id: e510ac107a56 last_write_checksum: sha1:c9381080d1e156fd53e9ad96560fc889760872c1 pristine_git_object: 8ff6b486c194c6553e0e172b965d3e9b9563f20f - docs/models/authdirection.md: - id: ca10166120de - last_write_checksum: sha1:83c67886c8768b357c58470e17450c8b0e621e80 - pristine_git_object: c3f547fca9932b775739cb2229cb512f14c564a3 docs/models/authenticationconfiguration.md: id: b470496ac0ad - last_write_checksum: sha1:f3ab922c2ed3bc4201d6089a34c72999d00ddf78 - pristine_git_object: 7f59cdaba8161a45a990e5af9b1b18c32aa71acf + last_write_checksum: sha1:681ea0ffe4c8dd997d059fe8ebc9985ef63bfbc2 + pristine_git_object: f2b558bb138c364edfd2f00d930c33073b4dc6ae docs/models/authenticationmethodcreateorupdaterequest.md: id: b64367bcb5e8 - last_write_checksum: sha1:8b4e262a662826f5be71b656af8112e771114dc0 - pristine_git_object: 6618f1e4f7c070c2941cd6a64212382b8ba1be63 + last_write_checksum: sha1:ad9665e235b00a2027538a6ffb3c1d9313ca20c5 + pristine_git_object: fce27978498ad1e3db0828fd77c27e37ac36de37 + docs/models/authenticationtype.md: + id: fc252db73e2a + last_write_checksum: sha1:fe2f2a27d545903ee4a53eafd53bc3794aae0833 + pristine_git_object: c7f6dace0eec6fff39329bd71ae4daca035b969c docs/models/authorization.md: id: dec4d9809e25 last_write_checksum: sha1:6bf766a7b49ca2b706bb4eb88ba2d56406e06e1e @@ -427,6 +427,10 @@ trackedFiles: id: df05a2481f48 last_write_checksum: sha1:6e6e74a9ee75bf37dd08703aca9f8e6a5f95a431 pristine_git_object: f8401a8e26c3d54aa47a1a6cc265050f0a4afc80 + docs/models/average.md: + id: 93d13017cf8c + last_write_checksum: sha1:5b2e8cb2af98c22ecb6627fc10d56dcce399ec93 + pristine_git_object: 9ea2c42fdbc1271d5efcc3787882177b7177842a docs/models/backendspec.md: id: 491edc0f1471 last_write_checksum: sha1:8ecc077b983dba655c45f701ebb5d0dbb4e56d64 @@ -499,6 +503,10 @@ trackedFiles: id: 69e393daf019 last_write_checksum: sha1:51a5c5fa815093aa1e91ec0f41567066b025abf3 pristine_git_object: 4968d664d1f4d34c300bc6a6dec18c992652999f + docs/models/categoricalstatistics.md: + id: 7f9bffee6420 + last_write_checksum: sha1:2d55f4c156d0005f827681da57af5bdc3222f551 + pristine_git_object: b9a37cf737a8e12b67509fc48d2e55a36ae245eb docs/models/chatclassificationrequest.md: id: 57b86771c870 last_write_checksum: sha1:bfd2fb8e2c83578ca0cea5209ea3f18c3bcd2ae5 @@ -587,6 +595,14 @@ trackedFiles: id: 21227dec49f2 last_write_checksum: sha1:56756a6c0c36ce94653b676eba1f648907a87a79 pristine_git_object: d1633ae779850cba0eac4a9c26b5b776a7b789e0 + docs/models/classificationstatisticspec.md: + id: 18efb8d1d33c + last_write_checksum: sha1:e50d8cdee5211a1d52fa6757401f9b50513e5ea1 + pristine_git_object: fb52dcef038978ee91f72b97e3521f436d1e65fb + docs/models/classificationstatisticspeckind.md: + id: 0088b3dedf16 + last_write_checksum: sha1:2ee1fd9c952505e7f542486e024b5af003a5e8ff + pristine_git_object: 1c2d9d681b132dcd534a555c6b73be2511745fbe docs/models/classificationtargetresult.md: id: 97a5eab5eb54 last_write_checksum: sha1:41269d1372be3523f46cb57bd19292af4971f7c0 @@ -655,6 +671,10 @@ trackedFiles: id: 72beafa9a4c8 last_write_checksum: sha1:a931148384c5d7f569781cdd370ef117487418a3 pristine_git_object: 73f3dbd808434667d062496e94a7e14fc41c267b + docs/models/computefilteredrunstatisticsv2v1observabilityevaluationrunsv2runidstatisticscomputepostrequest.md: + id: 44374d81fb36 + last_write_checksum: sha1:3f11891cf8ffc16b10cb348eebb0c0113faa8b94 + pristine_git_object: aabb9e22b4310cf47d9287e3ec4a8a4697390139 docs/models/confidencescoresgranularity.md: id: 76a175c65878 last_write_checksum: sha1:29b96ed4bf1aa8bbc76b00fa262f877e26971c5f @@ -663,6 +683,10 @@ trackedFiles: id: 19b9e48a3c2e last_write_checksum: sha1:6e199c756ce35e2bff3b67df5d97b4520518b271 pristine_git_object: c87093846ca27940a08318fb090c60ce56a00651 + docs/models/confusionmatrix.md: + id: 8029b08abcf6 + last_write_checksum: sha1:d6a86a4453ea42914517f58cbed1d4a6dd2408a3 + pristine_git_object: 1b4f925056693fc3fabece8afd1c006bcbf17386 docs/models/connectionconfigtype.md: id: 3b346ef828ff last_write_checksum: sha1:e3077c8da9145cce4b4b92688308c97aa9a05a19 @@ -741,32 +765,32 @@ trackedFiles: pristine_git_object: 3a62c0106481edc9d8137689c4d7d7649f812397 docs/models/connectorgetauthurlv1request.md: id: 8a02a6af19ab - last_write_checksum: sha1:13847897e7d57bc0ab35a45bde30c6ce7b36f9a2 - pristine_git_object: bc1f53389615a2762ecc013468c23e37a983bfad + last_write_checksum: sha1:36669c04d05367767f3a477b52f247e01896374d + pristine_git_object: 720a3449994a42347b6110039dded5e137a37642 docs/models/connectorgetv1request.md: id: 844c1f489684 last_write_checksum: sha1:2ce0a9b44c78e04d1918f1265087f1553c0614dc pristine_git_object: 4047bca3c6c88ca58acd4333ca856b60c81a0d57 docs/models/connectorlistorganizationcredentialsv1request.md: id: cc1870566c72 - last_write_checksum: sha1:a6b5cd03c244abcd1d5e4d6a48c066f9cf438acc - pristine_git_object: 439a2dc84881838257ca4bec34910c8a58ce9ee4 + last_write_checksum: sha1:bf52af5ac8d236b9500aa1683446b2b24a418467 + pristine_git_object: 00c77e2184b27549eb00701c04984b727d799ae6 docs/models/connectorlisttoolsv1request.md: id: 43698382d3c4 last_write_checksum: sha1:6615b2eba48d65badfed2ef43db68255770bcecf pristine_git_object: 2b4c177816451b137c00677a2c041c583d45fc9b docs/models/connectorlistusercredentialsv1request.md: id: 721da447813a - last_write_checksum: sha1:6a5ba1aa775e243e0b2de94f9be3829b84d10579 - pristine_git_object: c79dee4a306fa835e5249aefb061d0ca69ce7d04 + last_write_checksum: sha1:eefdf09315092da0a1d9d79c0be3233a839852be + pristine_git_object: 77ed4ffbcebca1454b3fd1ad4f109285a663574b docs/models/connectorlistv1request.md: id: 68b7a11faff6 last_write_checksum: sha1:e08effc0f17a95383c3ba96b06b1dba80f4dc767 pristine_git_object: 6b9a287ead2996c402ade5c18368eaff92c76b2a docs/models/connectorlistworkspacecredentialsv1request.md: id: c7f5827917c6 - last_write_checksum: sha1:b54a1f9c7cc37092f7a439cf392424a4c41f2c01 - pristine_git_object: 2e19b1cf959a9c3b07f0cc7755eee9549f40802e + last_write_checksum: sha1:165547fc2b6c0d50f04bf02c967fef1c7f37c5d2 + pristine_git_object: caaca115565bdafeb9af763361cf5dc92514bda0 docs/models/connectorlocale.md: id: fe553a89ff06 last_write_checksum: sha1:3bddb7128d7cf99124a07054d3a6e8c90d22755b @@ -849,8 +873,20 @@ trackedFiles: pristine_git_object: 9ac4df3f4993e81c99ddfcb91c0b32b04730da7f docs/models/contentchunk.md: id: d2d3a32080cd - last_write_checksum: sha1:b253e4b802adb5b66d896bfc6245ac4d21a0c67c - pristine_git_object: cb7e51d3a6e05f197fceff4a4999594f3e340dac + last_write_checksum: sha1:78fe232de5228e0695f399640a37a6aaf264a38a + pristine_git_object: edaae3a877ee993c4b55e9969290d40df7768e6b + docs/models/contentsearchfilter.md: + id: 3ac1e2e737a3 + last_write_checksum: sha1:8de3caf2d28f4a581a0008208dbf0ae9cbb673d9 + pristine_git_object: 6d639cb671173358782ee5b9aaf20c8a4854ffdc + docs/models/contentsearchfiltergroup.md: + id: dd31a092bbbb + last_write_checksum: sha1:c54d1c2a195ef2934a203404fe95197253eb620b + pristine_git_object: 4dd3053d11f749c2e2c6fe6178fb85619dc5ae68 + docs/models/contentsearchoperator.md: + id: 6e9176f6851b + last_write_checksum: sha1:a0097e48f158962ca9c1f4f66dde515bfeae9496 + pristine_git_object: e7c699a70c1e9d24ae9bb56d5952ecadcba8e1d5 docs/models/context.md: id: e8f2f9e54b8e last_write_checksum: sha1:4c14b386f9f89d98f4dd9487ab030f10478c0e63 @@ -989,8 +1025,8 @@ trackedFiles: pristine_git_object: 05c0318199c75958b47d5efd2c08cd5c7d75dc08 docs/models/createdatasetrecordv1observabilitydatasetsdatasetidrecordspostrequest.md: id: 599b04b8f392 - last_write_checksum: sha1:022456acf96559cefa8cdec2c006e13107241261 - pristine_git_object: 7fe42faac9ff2f46fb8e7c0a62068cd2e8f674eb + last_write_checksum: sha1:7994c79dbcd2f6c267197c0be1cee6e01ac72f2d + pristine_git_object: 8db3ea7f3ca59f346d86a575ec91a809dbaee997 docs/models/createdatasetrequest.md: id: ff55db5edd8c last_write_checksum: sha1:840cddba3faaee46a0a65a92e3f09b6079ac410d @@ -1085,8 +1121,8 @@ trackedFiles: pristine_git_object: ffec9f86214006fea91dcb153881b7027e348680 docs/models/credentialsresponse.md: id: 20dd6478c581 - last_write_checksum: sha1:c87e14ea27c52f670a5bf7e33b5e84180b91ab83 - pristine_git_object: 1c9a8596b0021eeaad2872faa02cc72b85c0d760 + last_write_checksum: sha1:3150b304dcef82b0f1d18b6a33b48e22899a406e + pristine_git_object: 0cd5b336ca1cb55d54a123c283fdbd957ebb1588 docs/models/credentialsstatus.md: id: cb4c99021c5c last_write_checksum: sha1:c6cee6c8a417808538a09ac387b4fcbd40469440 @@ -1153,8 +1189,8 @@ trackedFiles: pristine_git_object: 24ec13fbdf8d26f8232b03658ac0eacc13719dc1 docs/models/dataset.md: id: 31af4d237e19 - last_write_checksum: sha1:073fa9a0b7891ccd9b6ae64ba960d74eeb5c9007 - pristine_git_object: 9d235433850f4024ea920e85567d5c2d6df13fb0 + last_write_checksum: sha1:618a40671198e0a73cc4f8c2b329e1cd1a52c926 + pristine_git_object: 33e175147eaea7566e8dc1ee7d51beec84285e51 docs/models/datasetimportresult.md: id: e03af4f79a3a last_write_checksum: sha1:d2d17f260ae104d98d7dde583e5995be84256dd6 @@ -1165,8 +1201,8 @@ trackedFiles: pristine_git_object: 370d7ed5aabda11cbef3f6886e28aa4f75b11954 docs/models/datasetpreview.md: id: 5e080239e3e1 - last_write_checksum: sha1:5914284c85165976de7d53ac06fd30ebdc5a8c15 - pristine_git_object: f729908d470767dd2bde499fcfb198e5587c7d40 + last_write_checksum: sha1:210b1299da1e868cfdd9129a3a2f91699fa14594 + pristine_git_object: 89f99abc3b1598a6e06a483ba07b738b66c1804f docs/models/datasetrecord.md: id: 449ed69d3872 last_write_checksum: sha1:8685807735fdda2d6808632261d325dca5c7dcd2 @@ -1189,8 +1225,8 @@ trackedFiles: pristine_git_object: b2425068d8d53047c0f74b316ad456dfdcb5b18c docs/models/deletedatasetv1observabilitydatasetsdatasetiddeleterequest.md: id: 1324ff11f62a - last_write_checksum: sha1:b4e444986d7185513653466f232ce378a45ea98e - pristine_git_object: 4557d3c603d6a0b6ae2873e2ac11cca58604849b + last_write_checksum: sha1:454bd740afcb00f87dec8c38da3855a5fbf6bcef + pristine_git_object: 81abd61f11c7e284a0b37782f1a3e08090cb2d7d docs/models/deletedeploymentv1workflowsdeploymentsnamedeleterequest.md: id: 520748d99633 last_write_checksum: sha1:15af8dc6331d399bfdc2cd9d0fba73f21ac108b9 @@ -1355,10 +1391,6 @@ trackedFiles: id: 62aa5918033d last_write_checksum: sha1:17cf41f78367b69594c6a38f5d345a9c4264f1a8 pristine_git_object: 8b532d6b4b735b29a629e095fab28422ea593063 - docs/models/direction.md: - id: 5c2dbb7995cb - last_write_checksum: sha1:2dfedff8ff7b59bf8b7a72c78400152970362e1d - pristine_git_object: 8e02b553fdbe78542391267a9c2ebea33767088d docs/models/distancemetric.md: id: 8543b7a9de07 last_write_checksum: sha1:8aa73e9b28b31088f8484d7c23f070d2e449d807 @@ -1455,6 +1487,58 @@ trackedFiles: id: 45565a5249de last_write_checksum: sha1:83342e07ea691cf96f2c21225fbd539d226c2ef3 pristine_git_object: 12882f33ea0172c618d78f5f37e9b85a4f2af9cb + docs/models/evaluationrunfilterinput.md: + id: a8af25c420c3 + last_write_checksum: sha1:8c8c0e356717a0ddff17201103fb6497b0fff22e + pristine_git_object: 755d51af13091acecae239c0aaf6e06f52b459ea + docs/models/evaluationrungenerationv2.md: + id: 2a126a4df707 + last_write_checksum: sha1:948e26b97c51bf6e67cceec3acf0a84c7833f349 + pristine_git_object: 13a3101680cd1537a5b3bb5db129036a9fec6e81 + docs/models/evaluationrunoutputrecordv2.md: + id: 08824098dd9c + last_write_checksum: sha1:b5e6a33ab4644314fceee287780aded2e76ef2a6 + pristine_git_object: 0d2ebf07fdd782aef0183fd34fe19df83a285066 + docs/models/evaluationrunrecordfilterinput.md: + id: 5b7dab0ce51f + last_write_checksum: sha1:04d99e1bddbb259ac7db111b2a03e0e69e842ff0 + pristine_git_object: 35b9693c5d97542203bf36d588415a8acb3b31ec + docs/models/evaluationrunrecordv2response.md: + id: "707921507e55" + last_write_checksum: sha1:9e62b01f8879cab81cea00cc13f80a6eed0645cf + pristine_git_object: 3d471042fb656a4e25262866fb2ae06f78cede61 + docs/models/evaluationrunscorev2.md: + id: bbb6be858b35 + last_write_checksum: sha1:54cf2d7089e525758b4dbe4ea18fcaf408aecda2 + pristine_git_object: 00a256209bfc61e824020345c7883245addfb3bc + docs/models/evaluationrunv2response.md: + id: 9438501040f2 + last_write_checksum: sha1:b0cdc8133369f28d1deb86c96412bdb282146788 + pristine_git_object: db63a335ce1923d01dfe3e211c6b96bd2d731187 + docs/models/evaluationrunv2withrefsresponse.md: + id: 55cc91db64ab + last_write_checksum: sha1:52a6b93759d91bb41cdaba74469f92fc9ea60696 + pristine_git_object: 301a6600b1e713f2c09a0c89c201b14fcedbf572 + docs/models/evaluationsv2.md: + id: 13095bb51115 + last_write_checksum: sha1:c0b5c3513889ad9f9c9367e8ca9687475decc775 + pristine_git_object: 9816a46a2fa3ecf953d28715bf70969d466071fb + docs/models/evaluationv2.md: + id: fb831331caf6 + last_write_checksum: sha1:f4ad1f1a9fdbb29fbef4e3bdc7ed95e837125db8 + pristine_git_object: 0b9a24e7fa53c8925e14e5e871dc2c295af5fc44 + docs/models/evaluatorstatistics.md: + id: fd6a036825e0 + last_write_checksum: sha1:b817fc9149969026688534e05b1cccd565a3c412 + pristine_git_object: 2361dfe46271d8a7b26ace51bea821f9af013ef7 + docs/models/evaluatorv2.md: + id: cc9a95e90155 + last_write_checksum: sha1:f29cf3b04d2566efde3b25725d6fb5f36bac96ac + pristine_git_object: 1dd74b7e96141f3c161f8e1e04ec7447737591cd + docs/models/evaluatorv2direction.md: + id: 1f23f54704e1 + last_write_checksum: sha1:0fb30bd037b34b2ba0a2fca35adb7cfccffb71b1 + pristine_git_object: 67b22207861aeb8d4c7d92c4cf6d61d0774520a7 docs/models/eventprogressstatus.md: id: af5980e18511 last_write_checksum: sha1:83557558fb755cbdba7b8cfce5610f2f13f69a58 @@ -1501,8 +1585,8 @@ trackedFiles: pristine_git_object: 7187ee5c0121f42e1ebbb490563e7e11afb1f812 docs/models/exportdatasettojsonlv1observabilitydatasetsdatasetidexportstojsonlgetrequest.md: id: 16660f92d7d1 - last_write_checksum: sha1:fa22e53a929291e6b057283482ca7871fb6d2062 - pristine_git_object: efe4bbb058c168ad531be27cc135f09464d0da13 + last_write_checksum: sha1:52a39a0bd7f8813408d676792cc130695fb64326 + pristine_git_object: 7ae8408f67e940ed62e5c1b2f37ea3bc77ce8e30 docs/models/exportdefinition.md: id: 310eb7ab1bea last_write_checksum: sha1:67e3504e88c3cdea818edd4b0992920de52aac30 @@ -1535,6 +1619,10 @@ trackedFiles: id: 011ece329c81 last_write_checksum: sha1:2b0883b13911855411422eef24ef2f4ea477d55c pristine_git_object: 328d7230c8b24254c76bf3e7c48b49d859e83b88 + docs/models/fieldsortinput.md: + id: a7b926f7220e + last_write_checksum: sha1:a74b1261907a703ce00a94c6abe5caa602b98fef + pristine_git_object: a7974b7f939de0d5951a6928b896ea5347bf51c5 docs/models/file.md: id: 4ad31355bd1c last_write_checksum: sha1:3e65f2007c5f8611f830db1406f2bf41a998064b @@ -1545,8 +1633,8 @@ trackedFiles: pristine_git_object: 18217114060ac4e4b45fefabace4628684f27e5c docs/models/filepurpose.md: id: ed6216584490 - last_write_checksum: sha1:c38460a32b8a0a21aab0a298d62e5a26cde2339b - pristine_git_object: af6dc9fa4e02b1d385595a76b62721e214fb0c85 + last_write_checksum: sha1:7e2c22a971822f21227513dcf0883c4379fbb7f6 + pristine_git_object: 61c55641b76ee45e3f0ed675dcbfc2022e190565 docs/models/filesapiroutesdeletefilerequest.md: id: 7fdf9a97320b last_write_checksum: sha1:411e38d0e08a499049796d1557f79d669fc65107 @@ -1579,6 +1667,10 @@ trackedFiles: id: 2cdcd7761007 last_write_checksum: sha1:b63a786a0f73b0271e9eb2c70200939ebd9f13a7 pristine_git_object: 4e6c9ed95a982f198a9efab4a841a41a23f0aad9 + docs/models/filtercombinator.md: + id: c9d14da6d915 + last_write_checksum: sha1:6ef7b5e8afc742b841d87f4943ea81d7aa8ebcf9 + pristine_git_object: 42191cc0bbf7ae9cfcdb0ff5cadb52cde02de3ee docs/models/fimcompletionrequest.md: id: b44677ecc293 last_write_checksum: sha1:b8bd917220bec15149c384b70bf2818c83926b49 @@ -1669,20 +1761,20 @@ trackedFiles: pristine_git_object: a12c4ca0be3fc989aef15767d7ac2c3544eacec1 docs/models/getdatasetbyidv1observabilitydatasetsdatasetidgetrequest.md: id: a5811667ed1e - last_write_checksum: sha1:91f96f1449ad0adf83fccf11fdf270682a3e3cb4 - pristine_git_object: 60f2d162d96fe498dc01d844973236130d5eead1 + last_write_checksum: sha1:6820a7ec1b271c4145b588074da40a1cc402f8a4 + pristine_git_object: 7a2938e8c9607737c4c633d13277c8c2c37d5844 docs/models/getdatasetimporttasksv1observabilitydatasetsdatasetidtasksgetrequest.md: id: d02f57214a55 - last_write_checksum: sha1:0e9ee3c15dba7d6e2081f75174ff6bdac73cbc67 - pristine_git_object: d4226eca158b7d346e49c1982a200c7fb65a35c8 + last_write_checksum: sha1:80c942457398966be98140349abf8f27eb327c6a + pristine_git_object: b580e80825f0434b8319478bb1f4c4ee874f98db docs/models/getdatasetimporttaskv1observabilitydatasetsdatasetidtaskstaskidgetrequest.md: id: 04bc3bb2be8f - last_write_checksum: sha1:6400ca140ed4d79169abdae516fb82423f83f018 - pristine_git_object: 98ffc3c62fa10a89ab5fbd7fad53d11dc489b13d + last_write_checksum: sha1:cbebb01d93260dc2ad167ea840e8a334f904f76c + pristine_git_object: c66458efc5951b35596becca413f77474adb15e6 docs/models/getdatasetrecordsv1observabilitydatasetsdatasetidrecordsgetrequest.md: id: 544765ca9499 - last_write_checksum: sha1:030efa16a9ec71b6adf325d8a7e083611e345e43 - pristine_git_object: 82453f0c4169758ccb48c465bf95677f712dc257 + last_write_checksum: sha1:e7507d5ae326c76b4c6e2d27dddbcec4c4d636d0 + pristine_git_object: 4b4edcecfae71ecb1f9743cc7ce920fe3b505e20 docs/models/getdatasetrecordv1observabilitydatasetrecordsdatasetrecordidgetrequest.md: id: fedf1584cb11 last_write_checksum: sha1:1f6ad7fd1efccb3bdef3748bec748d23d00e3821 @@ -1727,6 +1819,18 @@ trackedFiles: id: 655b59bc906d last_write_checksum: sha1:b3651f4e3d37de228f196c5e12fac239cdde379d pristine_git_object: f54301f15d03a0708c1aa59c1417b7aa883e8056 + docs/models/getevaluationrunrecordv2v1observabilityevaluationrunsv2runidrecordsrecordidgetrequest.md: + id: af67343ded67 + last_write_checksum: sha1:8def1f45fa59976c3f4f5bf36989d24f28d595d0 + pristine_git_object: d38e3f2b6752f3b2565ccb93e382d0f4a280c0e0 + docs/models/getevaluationrunv2v1observabilityevaluationrunsv2runidgetrequest.md: + id: 33d8ca26a61c + last_write_checksum: sha1:49f62829808319cd332994263c33d52ea9846ab1 + pristine_git_object: 392169e8223d9086a594d9fa0618586cfe4f7df4 + docs/models/getevaluationv2v1observabilityevaluationsv2evaluationsluggetrequest.md: + id: 83682053c5a7 + last_write_checksum: sha1:8cfba133f1201fbc4680bd49ddb3da0c878d1bcd + pristine_git_object: 09872a8aff4c391351652beea8f98c7fad1996cb docs/models/getfileresponse.md: id: a983b3c8acd6 last_write_checksum: sha1:643a3c92ce26f21a915bd485fc4af7817e79f864 @@ -1763,6 +1867,10 @@ trackedFiles: id: b52f3d66820d last_write_checksum: sha1:0beedf5d8e93a1df9961fdf35b1762d147ac81ae pristine_git_object: 13fa6b7315600d74aec259bc5512ad347063c12c + docs/models/getoptimizationv1observabilityoptimizationsoptimizationidgetrequest.md: + id: 6fea6ca5f2b7 + last_write_checksum: sha1:b69d0978b744436db5ce3d0c5bcda3caeb92ed9b + pristine_git_object: d4ce239c91078f9ad8355dca10f4a4ac3d9c85a9 docs/models/getpipelineconfigv1observabilitypipelineconfigspipelineconfigidgetrequest.md: id: 9987a63f928a last_write_checksum: sha1:1aae5f440458dbd19254024155f55c250f5d8daa @@ -1771,6 +1879,18 @@ trackedFiles: id: 38220b2af1c7 last_write_checksum: sha1:407a60ae866f48fd7f962eb2b32a2c128130521b pristine_git_object: de11d3da8de3aca39355d07e869ef50c0e4263ea + docs/models/getprojectevaluationsv2v1observabilityprojectsprojectslugevaluationsv2getrequest.md: + id: b37dcc3e40cc + last_write_checksum: sha1:062b7199d97cb65bb3e84c436d3fbec9607cfbfb + pristine_git_object: 5d6f89237a5c7cec7e9e757652d29ac5d62fe545 + docs/models/getprojectsv1observabilityprojectsgetrequest.md: + id: e52e3c203807 + last_write_checksum: sha1:e897e9f5cc89ee86512dc0b0ca45a2f70488b443 + pristine_git_object: 722eee71f6cbd6986155f8b8e94fd42c59020ad7 + docs/models/getprojectv1observabilityprojectsprojectsluggetrequest.md: + id: 02352d47390b + last_write_checksum: sha1:56ea1d3d4713cb11bf67d77ad0e0648fd2f92f66 + pristine_git_object: 9522e16dea4a70fc6194bb9645d218cafa8062af docs/models/getrunhistoryv1workflowsrunsrunidhistorygetrequest.md: id: d0010e389ace last_write_checksum: sha1:9083de20179b09071ac9f5ded13a15b70d4fea87 @@ -1803,6 +1923,10 @@ trackedFiles: id: 5539e5d7c3d4 last_write_checksum: sha1:7198474f48bfba6d47326cd436e4a00a8ba70ce3 pristine_git_object: bde693236406fe092f48c315e3b68a2fbbe6f9a4 + docs/models/getsingleevaluationrunstatisticsv2v1observabilityevaluationrunsv2runidstatisticsgetrequest.md: + id: 397d00a42446 + last_write_checksum: sha1:2deb8933dd8ee75a02452367ff77ee4ccd2c09d4 + pristine_git_object: d9fb6c41debdd66ababc0337f231133d17af5493 docs/models/getspan.md: id: c94b8e82cc0c last_write_checksum: sha1:fb098efab596b43e8fcc5ba4e5af2f298b243779 @@ -1945,8 +2069,8 @@ trackedFiles: pristine_git_object: a6e623dd847551f7d96b4b90ef8e9d504529112a docs/models/getworkflowregistrationsv1workflowsregistrationsgetrequest.md: id: 4b699772bee5 - last_write_checksum: sha1:48bda785e6bfbd91350db70db13b523e3eaf0f09 - pristine_git_object: ee53e5a252a2869330da4b9e2d68358587f4c54b + last_write_checksum: sha1:3ecc38856effe3ba3c81d10d56dadc0df29c0f22 + pristine_git_object: 11ed099b38d3a2c036206d5fdacdd85f16e076ad docs/models/getworkflowregistrationv1workflowsregistrationsworkflowregistrationidgetrequest.md: id: 597766b7d51b last_write_checksum: sha1:5c58fbed3af8d08dd94eaba0ae8ed41d61fb6c52 @@ -1983,6 +2107,34 @@ trackedFiles: id: 8d497a2b5d19 last_write_checksum: sha1:c95ac0a4b90d29a6cc0ad3aa8f9660b21587914f pristine_git_object: 56cefd67e15ba32a246d3a4815786239a7c4d0af + docs/models/goalresult.md: + id: 80e52ebf2028 + last_write_checksum: sha1:b8648293c8c87469c450b4e259543751755668bf + pristine_git_object: cb507c3a1e43d02effa2ae28c62fbf64a782eab8 + docs/models/goalresultitem.md: + id: b614ac1c21b3 + last_write_checksum: sha1:e4fc3af3f1c4b19053fe07a836a1fcb5ccc9aae6 + pristine_git_object: 11728ab757b297e9d73e36444093d1970e852626 + docs/models/goalresultitemdirection.md: + id: 6f21538365dd + last_write_checksum: sha1:20eeb3b9f9bc167e07f206194113c3eb42452981 + pristine_git_object: e7e0e76e2741bdfff6ba6c0f57d949bbf3185e23 + docs/models/goalspec.md: + id: 6ce294242be9 + last_write_checksum: sha1:e900c8d043842f36cf50a5a866a96bb9897e3b40 + pristine_git_object: cefd250c831bebe39fc4d2e637d456328423dbfa + docs/models/goalstatus.md: + id: 8f8fd3f84c2d + last_write_checksum: sha1:72f41944d4baf4775ba0656d4b04a2aece77e739 + pristine_git_object: f174cea4e72d0432b3a7b93947a2257f81b45117 + docs/models/goalstatusfilter.md: + id: ab451b79d848 + last_write_checksum: sha1:2c7c28eca6a928e03515b77254781c6eb1dfd702 + pristine_git_object: cea68ef34c635f7fcca97d1afef76bdd8080f8b5 + docs/models/goalstatusfiltergroup.md: + id: 904b3ae63ce6 + last_write_checksum: sha1:121cf8a9639c4180f392ec3babd2c7dd86177c8e + pristine_git_object: 54a05c7d37d3ccce85399cbdf23c6c7473d27e5a docs/models/granularity.md: id: 3cee51c03dea last_write_checksum: sha1:7ac3b029b14105672460c3fab1b8ae56637fb979 @@ -2013,8 +2165,8 @@ trackedFiles: pristine_git_object: 1276462cc43fbd940f12282b1dca05e6fc7a16f9 docs/models/httpconnector.md: id: eeb95c7a05cd - last_write_checksum: sha1:186b4fb204beefefb67cf6fe502923d397c7562f - pristine_git_object: c1868c224b8ddcf649b0e7670bbb450502c56143 + last_write_checksum: sha1:9131a40017d9eb4bd50084a568142c2f321dd558 + pristine_git_object: dae9431e94bca19bdf47ff2ecc948a55d59e59b4 docs/models/httpstatus.md: id: 88abba969ffd last_write_checksum: sha1:088800f9bbd8ce7db0f1dc948044558fef268636 @@ -2063,10 +2215,6 @@ trackedFiles: id: 9520707758f0 last_write_checksum: sha1:8db5ba33fa9c50f199d1a7bbae3c1616e65203b8 pristine_git_object: 3e0509db0808a78f8beeeb97b8f89d421ae9d905 - docs/models/inboundauthenticationtype.md: - id: 31c15e812eb0 - last_write_checksum: sha1:341c47f514e556a8fd8a602920fb6a29beffa305 - pristine_git_object: ea04329c04cbe001e4a29880fc2fd463ba5cbe03 docs/models/ingestdocumentsrequest.md: id: 84fd78954e92 last_write_checksum: sha1:cd24af1e788e720790f47f53007a00f5218df013 @@ -2115,6 +2263,10 @@ trackedFiles: id: 9a323b27ebd6 last_write_checksum: sha1:349132e663310f81a11d92580fad9db21bf2e395 pristine_git_object: 6f68d3f633b07e2c04c8d5bf8fc6eda9a853c976 + docs/models/ipaphoneme.md: + id: 0c4021a50326 + last_write_checksum: sha1:a674cf60900be0859c785872f8ee1f55c00a7de4 + pristine_git_object: c2a0fcb4f4d97cd5fa8652e29d2155cfc008ae1a docs/models/jobsapiroutesbatchcancelbatchjobrequest.md: id: 798cb1ca1385 last_write_checksum: sha1:67e8bda117608aee0e09a702a1ef8a4b03c40b68 @@ -2383,6 +2535,14 @@ trackedFiles: id: f2091cee0405 last_write_checksum: sha1:335d0ccd3a448e65739d5a0cfa2c67614daec031 pristine_git_object: 47b9d3b73fdc85bf6e463c91790faf346df56664 + docs/models/listevaluationrunrecordsresponse.md: + id: 51df8d640efb + last_write_checksum: sha1:ca579ff2fcf03f0d52187b6f6a48168bed9b7b33 + pristine_git_object: d84a0002f0a2200b0ae92fd6f0574b5fa06b8fb4 + docs/models/listevaluationrunsresponse.md: + id: 2b12ffabbad1 + last_write_checksum: sha1:862211e292865a2657e3132d2c094ca2b05cd362 + pristine_git_object: 2e3907cdd10f24002d1aa11f8762a8cd0e85a2be docs/models/listfilesresponse.md: id: b15df90d2d59 last_write_checksum: sha1:4840f26427acf8846a9f1e48136f0663c6e4cd87 @@ -2411,6 +2571,22 @@ trackedFiles: id: ade37f6d014a last_write_checksum: sha1:10d4e1242cdac6cdc7597881e0d25ce06760971f pristine_git_object: 537269f7e774b31c45ac75c82c096530c0bd2b4e + docs/models/listoptimizationsresponse.md: + id: c628dc9840a4 + last_write_checksum: sha1:72e2ae972804a51022b66865cd86b70c2cc5693e + pristine_git_object: 698049ba5ad5aa59f9f9501ceb31fc4ad223f504 + docs/models/listoptimizationsv1observabilityoptimizationsgetrequest.md: + id: b408e2b509d0 + last_write_checksum: sha1:b9952d6b4fb7b3c3b38b185183c70c5cdeac2d91 + pristine_git_object: 525eb8651b9feb93941def14e7cc68ee21ea9a44 + docs/models/listoptimizationtrialsresponse.md: + id: 5b170708043b + last_write_checksum: sha1:c79bed431d4137911e5109772303bf62c996ed73 + pristine_git_object: b7ca515866e9b0ea507c87b1fcb7e04e274baa3b + docs/models/listoptimizationtrialsv1observabilityoptimizationsoptimizationidtrialsgetrequest.md: + id: d46626e2ee1b + last_write_checksum: sha1:dd4c5b496dba114acafcf95adcfb498f4329b1ce + pristine_git_object: 1a047523aab1ec25dc5a76b6094171165077c5df docs/models/listorganizationsresponse.md: id: 40564e9f4990 last_write_checksum: sha1:549104cc1913e880eb80eca3a9ef9e05aa050b07 @@ -2569,8 +2745,8 @@ trackedFiles: pristine_git_object: 51b13113c8c45f99df781c86b59cb49e6298d567 docs/models/mcpconnector.md: id: be0aeea7d044 - last_write_checksum: sha1:f25437cf75e73771c9449fe8c369c9a93c23f628 - pristine_git_object: 17180c0b62c43db47536b589577cdb627d1f0a3c + last_write_checksum: sha1:f6a15924cb8ccf6829f11d877392c0c9663aee86 + pristine_git_object: d8bcc37a8161ad37a9f810d4ba5e6d3f4b2f8398 docs/models/mcpprompt.md: id: c6eeb6a6a719 last_write_checksum: sha1:321ce6a140536a8582632d937f498b2fd8006a7b @@ -2671,10 +2847,22 @@ trackedFiles: id: c348c2448aaa last_write_checksum: sha1:745a41b9189a9a48cbde2838bf9432e60bb9df62 pristine_git_object: 79b126d9a6a72f84fa491417bff0f891206f59b4 - docs/models/methodtype.md: - id: 7c7e0f30b36b - last_write_checksum: sha1:1d3d6335473dc65c4964ebfd578ee955403dde7d - pristine_git_object: 7628bbdd47c63d6109b175157f6ba8f9e907c5d0 + docs/models/metadata.md: + id: ad63dba5a4f8 + last_write_checksum: sha1:ff2c890fd9527ba5ecae6fc1f28609eac06c44d9 + pristine_git_object: 62a4f6d634cc17d1b9261c565fb8019b3ca86268 + docs/models/metadatafilter.md: + id: 815525cc072d + last_write_checksum: sha1:2f9a586443daf16e9e227463a4674ac8e42be6ee + pristine_git_object: 921abbf022bde43943298b136725c347fb31201c + docs/models/metadatafiltergroup.md: + id: 77a97c36db01 + last_write_checksum: sha1:6700f9e2e3cd4ef299a2cec6ce9f49b1a06ae8c3 + pristine_git_object: ccf49589f7de7bc0a54901d89ae86ce4784d5eb1 + docs/models/metadatafiltervalue.md: + id: ca9a0c35c47d + last_write_checksum: sha1:587b726fce7622980d05c52b4e302f90c2a5ac39 + pristine_git_object: 58ad59b09816792dfa766b6c940e295f9700ef69 docs/models/metricaggregation.md: id: 0f926158669d last_write_checksum: sha1:20df8cfe3aa53bce14350d5d0dfa00b8a5a0e930 @@ -2799,18 +2987,26 @@ trackedFiles: id: 331db24a4615 last_write_checksum: sha1:2e020c7d717f00c23da4dd1bf6412539e872932b pristine_git_object: 00b50c20f776155ecfb98a9033fbdc2ce57152aa + docs/models/numericscoremetric.md: + id: fbe5d4622de4 + last_write_checksum: sha1:b35d375632d7d3a768b0c35451b5657f87375043 + pristine_git_object: 0b7be0a6e6c9803f36a32e15f979e64f36c4ed33 + docs/models/numericstatistics.md: + id: 2eed389812ba + last_write_checksum: sha1:f5517ecdefc4e3e1d6a6712a92313df2b25af62b + pristine_git_object: e26b051609bf8e12445110e5b8c4bbbd81d2e795 docs/models/oauth2authmethod.md: id: b58ebde68702 last_write_checksum: sha1:7ebf4c7f5e961d0814002b9e866ca1142be4e161 pristine_git_object: 0da59e8ef5fa048ac4f2266a1f48887f8d110833 docs/models/oauth2authorizationcodeauthmethod.md: id: 80231259a5ed - last_write_checksum: sha1:39ae381aefe8150b74cb005c58deab86a4ccb6f2 - pristine_git_object: f989151cc606a9a84734938b424e88e6b6db9a6c + last_write_checksum: sha1:b0646c67885bb509e43bb701cebb9a1385eaba1d + pristine_git_object: 898b8472b7aeed335b6122a10e111bb18ee45b91 docs/models/oauth2clientcredentialsauthmethod.md: id: 0a053c797369 - last_write_checksum: sha1:3985be088bc56b986c0e62f861fd59490e6c3b64 - pristine_git_object: 47ec9edd3036ed97447aa1aff9b2d652c8f2ea5f + last_write_checksum: sha1:83ca256490fa564ed53bf8f85f99c83fe298b686 + pristine_git_object: de804f99e479c3f6b676680443d10182071ec45a docs/models/oauth2clientcredentialsinput.md: id: cffe0e756fa7 last_write_checksum: sha1:a5b68ca5e3016522cd1aefee0bc4985e62bbc9f4 @@ -2837,8 +3033,8 @@ trackedFiles: pristine_git_object: 22e2804a4424325ad07c264a61463635299fc254 docs/models/observabilityerrorcode.md: id: 61d16ff95b87 - last_write_checksum: sha1:afbfe6a69b3cafa1ea5ef09558636ed92b21b384 - pristine_git_object: 678d3886145f1eb5a1b80ce1763ee02c4c066b73 + last_write_checksum: sha1:dfa87efabba4a093f43605b803bf8fe16d9adfe9 + pristine_git_object: 314a516353e9a844677a397ffb4f53273704a025 docs/models/observabilityerrordetail.md: id: 38061447dfbb last_write_checksum: sha1:1da7bf6e72c2f972b0e22f0201a1cb9b76f53ccd @@ -2935,6 +3131,26 @@ trackedFiles: id: 419abbb8353a last_write_checksum: sha1:6e717a3f3de3c464e8b3237f06867cdfecec339e pristine_git_object: d9d79125cb02bc2b09d8dc543a5e2d4a6c55571c + docs/models/optimization.md: + id: 7adf987697ce + last_write_checksum: sha1:aa299f3d726fdd105334240badbd9eaac5e8425e + pristine_git_object: 0bbefba3d660231196bafce33db4008376d0cab9 + docs/models/optimizationdetail.md: + id: 9edfd233f4d8 + last_write_checksum: sha1:831bb69a3c5121d74a66da37bd7e1cc1afdc2c1e + pristine_git_object: d41df79a1bbce0611feb7b14188cd3654a925fb2 + docs/models/optimizationreference.md: + id: ac65f5db375a + last_write_checksum: sha1:373836e399d05bdaf1b4fe95f5e313c40cc66084 + pristine_git_object: b067ee5e0f012927e3916b88c2d7ea4b6567aa6e + docs/models/optimizationtrialobservation.md: + id: 57eba8e76143 + last_write_checksum: sha1:a5ed877d10d01939df6b39e2f468239df79f5c15 + pristine_git_object: 291a09746c41eb2841211a1788f84f07afd41c51 + docs/models/optimizationtrialwithobservations.md: + id: ac6d86ca1382 + last_write_checksum: sha1:40304ea0966f3820609f75938201fcc007df0d95 + pristine_git_object: 74a790a848d329dbc93e7b20cc2c4b4c04a25a4c docs/models/or_.md: id: 4062b9894f72 last_write_checksum: sha1:4d3d5a37fb7e365249b31186ac87f2e0c3333227 @@ -2945,8 +3161,12 @@ trackedFiles: pristine_git_object: 3c78f582244a5174c2d922abe8e8f6e3c158e6d6 docs/models/orderbyclause.md: id: 75e31a43e29c - last_write_checksum: sha1:9d0f87458b3c9ec39ac11de493e7b91edc2541c7 - pristine_git_object: 4d9604b0792dbfe133c77c83637bbbcd0a6e3a64 + last_write_checksum: sha1:54cc17d66b0604b2aaf84c955bea510930ebd5e9 + pristine_git_object: 5f2f03833e98d1ce2aac0b4729fd04cce5ad0323 + docs/models/orderbyclausedirection.md: + id: c5d608bcc262 + last_write_checksum: sha1:602cecf53a67a3232496d631c0ea6d1cb08cc271 + pristine_git_object: a1bac936ef95fd818b94d4ad14bbf10ea25e3285 docs/models/ormatch.md: id: ae7dc9a4f56b last_write_checksum: sha1:2a3a2fb048680238f928591b518de7297d1f1989 @@ -2963,10 +3183,6 @@ trackedFiles: id: 10552b6a953b last_write_checksum: sha1:f0945eb7f8c5bb7180103bc8aac228db52292394 pristine_git_object: f8f5ead105dbba72cffa272b07b122513b73d899 - docs/models/outboundauthenticationtype.md: - id: a62ff6260857 - last_write_checksum: sha1:d0347c0ec6f11af08e2abca8331d3d44e17bad8b - pristine_git_object: 72aef73a3dd6a4240da9f54ac2f6e738ba8183b6 docs/models/outputcontentchunks.md: id: f7e175c8e002 last_write_checksum: sha1:5094466110028801726cc825e8809f524fe1ee24 @@ -2995,10 +3211,34 @@ trackedFiles: id: 79bed183ed1c last_write_checksum: sha1:9f3d08b3f0b2618d66047f198121d762e8782a17 pristine_git_object: 31b086eb6ce8db231af2ca60d07b10d20a99ce9a + docs/models/paginatedresultevaluationrunrecordv2response.md: + id: ca82b6c786a8 + last_write_checksum: sha1:7faf73acd5cda0864c6fc49d41076e80a40458e0 + pristine_git_object: 51e728174813626eb320b52be1bad97cad10809f + docs/models/paginatedresultevaluationrunv2response.md: + id: f29a63767721 + last_write_checksum: sha1:04c49f6dbca6aeca1c3581d197f847c76f40d4f6 + pristine_git_object: aacd748c0a9fb92fb259b263c1989091c7f418fd + docs/models/paginatedresultevaluationrunv2withrefsresponse.md: + id: e12d92ef7808 + last_write_checksum: sha1:46d72e6cffdfa8b28f1fc23ace7b32de19dbb7d5 + pristine_git_object: 86a14461d89a07593977d6134999f538dd0a6c36 + docs/models/paginatedresultevaluationv2.md: + id: f1d0b8ffcd51 + last_write_checksum: sha1:e9b3fe62299f6d819f7cc3f3688ebb45d12a47f9 + pristine_git_object: 5a8e6faebd4759753c2ab32bea85f615f7b15cfd docs/models/paginatedresultjudgepreview.md: id: 90506e511844 last_write_checksum: sha1:01368f99123b7db0e8dee1f03640f8258f89ea8b pristine_git_object: 91bf0c35876a6dcc2bf5cd34c8cbf1ade82b4d0c + docs/models/paginatedresultoptimization.md: + id: 816e1892698c + last_write_checksum: sha1:31f543bf02555b2f8924e8841a0324f3a9c9a6bf + pristine_git_object: f7c8e35e5d14ed197b93a62505d7645767c4d6a3 + docs/models/paginatedresultoptimizationtrialwithobservations.md: + id: 8767d4ead3d1 + last_write_checksum: sha1:30b7ac1b9e953c682212bcf6c4ef6ed4e7021db0 + pristine_git_object: 2ff8ffdf180ea4f9eb5f2fdaac6ed4d9cc5557dc docs/models/paginatedresultpipeline.md: id: b2c2a32a3b9f last_write_checksum: sha1:f9d1589299f685be51841600a471adc9ffeff308 @@ -3007,6 +3247,10 @@ trackedFiles: id: 8366cb2d20dd last_write_checksum: sha1:45453d13980ebfa2b68f93848e8e27f3cb39e6df pristine_git_object: 1520c7cf04bcf46916d9490d40e584116a3a9c7a + docs/models/paginatedresultproject.md: + id: e604aed54666 + last_write_checksum: sha1:242cef502eaedbacb121ac3462eee6ef38ec9a6b + pristine_git_object: 400938484c3419cb55b7a59a128a8347089abc30 docs/models/paginationinfo.md: id: 3d2b61cbbf88 last_write_checksum: sha1:1da38e172024fe703f3180ea3c6ec91fe3c51ed0 @@ -3015,6 +3259,10 @@ trackedFiles: id: 592cf80526b8 last_write_checksum: sha1:e72a2238fe984cc4fa0d2522b462aa9ad247af78 pristine_git_object: 7ed17a697771f10febe2b893f092865b09dc04c7 + docs/models/params.md: + id: 9c85a55b7b80 + last_write_checksum: sha1:655c3f77152f976128fa566f3c61472c65664712 + pristine_git_object: 77b9f30f62bc954ca6c108a67300ea3e2dced626 docs/models/partialscheduledefinition.md: id: f5bb5dc0cf18 last_write_checksum: sha1:a0a8d6c43c0231c0e2061de78f5b6e9e233e7c23 @@ -3027,6 +3275,14 @@ trackedFiles: id: cd93a0338683 last_write_checksum: sha1:58bb76cb62da4c0c3c0f41965854dac205dcae3c pristine_git_object: 22b47fa5d1a09c31ceacca958e094b9f37ea994a + docs/models/percentile.md: + id: 332b39ca6a68 + last_write_checksum: sha1:6f28f583c98d6f15232b4bd38861bc923e9b9225 + pristine_git_object: 7bdd05b7a4550ffc91c7a402a5352c8c28f48986 + docs/models/percentilestatisticspec.md: + id: c58f3985c160 + last_write_checksum: sha1:7c8999454890964ca5a3e719af179a6f20de7dfe + pristine_git_object: 611e0abf12e4b7d9a0844f97dc291d092e29d963 docs/models/pipeline.md: id: 7bf10de52bd9 last_write_checksum: sha1:920c73bee4548517704407909d530f907421c764 @@ -3065,20 +3321,20 @@ trackedFiles: pristine_git_object: 3388b230b8f59d4dff559fa0a4786c29124126e5 docs/models/postdatasetrecordsfromdatasetv1observabilitydatasetsdatasetidimportsfromdatasetpostrequest.md: id: 6a1b28e01fd6 - last_write_checksum: sha1:63acf2f14db16c43da0347c0b5547cf90bf91e55 - pristine_git_object: 33dafda2ecabe8d4d92b973ae78932c6037809f5 + last_write_checksum: sha1:57304e15d8627ab60574109f834ba277a30ec9dc + pristine_git_object: 860afff81920a54b044f6c1b7dad3b017e00d9ca docs/models/postdatasetrecordsfromfilev1observabilitydatasetsdatasetidimportsfromfilepostrequest.md: id: ffc31f79f514 - last_write_checksum: sha1:f07eefba3eff14afa69786c37beacaac8484a99a - pristine_git_object: 0bff196b59382962b6e49884c547354c2f71af03 + last_write_checksum: sha1:8cff9f19c50f920161c70e9a4c724e8e1c3dfa58 + pristine_git_object: 1e083c433e1086a7575173288f5c8b24dc1320ce docs/models/postdatasetrecordsfromplaygroundv1observabilitydatasetsdatasetidimportsfromplaygroundpostrequest.md: id: a3c711a50d05 - last_write_checksum: sha1:130c16a00743f65394279d00af233e6ee4337451 - pristine_git_object: 86ab87b8d016644f31b762a9010b368337c3b141 + last_write_checksum: sha1:5bdd63af46d9845e4ff4960b9ba42e084b4f938d + pristine_git_object: 08db8ad94ab8de09d49fa54edcdf58008c1ef0f2 docs/models/postdatasetrecordsfromspansv1observabilitydatasetsdatasetidimportsfromspanspostrequest.md: id: ef891ce33670 - last_write_checksum: sha1:a39d9e95577d9bc45f25c8a2b310ea42bc4411d2 - pristine_git_object: 503a5bb7130cc7b54460d3761f6cbdc2866401d9 + last_write_checksum: sha1:8477011ac2e7a649e7719430131962620ec31936 + pristine_git_object: b18acf2355e95b0e7c0442113bf45a423fcf5df3 docs/models/prediction.md: id: 3c70b2262201 last_write_checksum: sha1:ca8a77219e6113f2358a5363e935288d90df0725 @@ -3095,6 +3351,18 @@ trackedFiles: id: "336054835357" last_write_checksum: sha1:43253d2ef4badf3a5e8e5981becfb558c934359a pristine_git_object: 68313743c4d926b2cb29037d0e59a2f9d8d25f1c + docs/models/project.md: + id: 90bdd121a0a9 + last_write_checksum: sha1:b1c855b32290354fa516f78c9f8f9c44502fded9 + pristine_git_object: 1b7f7ce3202f6c465f1f4da9229dd2926d1ff26c + docs/models/projectevaluationsummary.md: + id: 3e679272dafc + last_write_checksum: sha1:20309afb18b0194f4c80694860839d733bc3ae32 + pristine_git_object: 3083b529adb74e819c5110bb0b997e99e61d27f5 + docs/models/projects.md: + id: 9d0e1cde864d + last_write_checksum: sha1:93d493d9d23fe8b36fe1fb3ba00d1fb1844d652f + pristine_git_object: 0d60aabc1adf8365498c8493e4355cf1b27cfeb6 docs/models/prompt.md: id: faf3fe7a5a2e last_write_checksum: sha1:42190fe2c5f720fe02366ba7ceb41a8b57577ccf @@ -3165,8 +3433,8 @@ trackedFiles: pristine_git_object: 66cd6dc29e6a94856302a7c1bf624efaaab6a082 docs/models/publicauthenticationmethod.md: id: abfb51fdf794 - last_write_checksum: sha1:a5d0d879f9fbd7d8f474e87fd76488f726962dd4 - pristine_git_object: 355f946b6a026ad07c16f7c8d63fa0d4e03bd736 + last_write_checksum: sha1:60a4032798e1653504eb43102d70c640e6f3f99f + pristine_git_object: b53e78f31a53057ea2efeecea6f4b28dddc1c72a docs/models/publicconnectionconfig.md: id: e05a024f162c last_write_checksum: sha1:ab9dd73817a606e22c4d526910771158070e0e4e @@ -3275,6 +3543,10 @@ trackedFiles: id: c8fd630d3f07 last_write_checksum: sha1:ebfd30ba28d245cd62a6aaae59749eb1d5bfa990 pristine_git_object: 207f5035a7d8d0eb0b5843b70082dc681630f50d + docs/models/recordsortfield.md: + id: a7e7ed91fe30 + last_write_checksum: sha1:0065e62c013f9432fe40e4956c8a66849f3db485 + pristine_git_object: 2d74eeca0a79a10dbda7224bf450aac891f93902 docs/models/referencechunk.md: id: 07895f9debfd last_write_checksum: sha1:3d35227a4f7612301fd5f17a445c4c2b712f0bf1 @@ -3343,10 +3615,22 @@ trackedFiles: id: 94a32a903140 last_write_checksum: sha1:0c141e37497f5b07d2da77a41777617ed3653582 pristine_git_object: 30d74c40f3add81023ad86271bb02dfe018c1013 + docs/models/resourcechunk.md: + id: 967f97d216d3 + last_write_checksum: sha1:94da63213a1d46ba6c8c8012ff00a3082e41f7d9 + pristine_git_object: 28ac0737389fe30befaddae4a16002652d866fae + docs/models/resourcechunkcontent.md: + id: a26e73ce9def + last_write_checksum: sha1:5c4b01ad467ef6e94096e70bf6f87a26014f9cb8 + pristine_git_object: 8daafb5c3db8a9f9cb11c95f12694c611c7919fc docs/models/resourcelink.md: id: 1086204e8a19 last_write_checksum: sha1:f1a1c228a16e8e99cd5ff04622455e080418dd6d pristine_git_object: 074c573e64e98cbaf177fde279364f26df04a2bf + docs/models/resourcelinkchunk.md: + id: b3a5cc9f0d01 + last_write_checksum: sha1:894a17075af9a736c2f9d881d7990638c80cc42c + pristine_git_object: 1bb90d191f68d338e6bb65df1b1e3e516adb25f1 docs/models/resources.md: id: 322aa690f06f last_write_checksum: sha1:2e0ea1407b59e79451a8521a39ccc06bd5414ce4 @@ -3439,6 +3723,26 @@ trackedFiles: id: 8cf222c4b810 last_write_checksum: sha1:0e421d7174379b3bd8ec8789eb64999c77b2a960 pristine_git_object: 16145cf4ef3933e1fc66b79b09686d3fdf5aefa1 + docs/models/runevaluationsummary.md: + id: 0a5d0e54a88c + last_write_checksum: sha1:e4f0ccaad4a9dbfa7d6283dac201c05b3b1d3df3 + pristine_git_object: 491537bb8e48c647c140cb6df51606b2220da6ae + docs/models/runoptimizationref.md: + id: d3129809c1d4 + last_write_checksum: sha1:7f3484994692d4255efb3b8cee766d9cc31e68c9 + pristine_git_object: 421930910bfba4a29491f0100590ebca987851e2 + docs/models/runownershipfilter.md: + id: 67719495ad51 + last_write_checksum: sha1:cdd3365ebc4096cdb03aadb57cca9edcbc4e7eb0 + pristine_git_object: a3ef7d42648a88bc2d5acd7c2beb218205adc52e + docs/models/runprojectsummary.md: + id: 39209877e9a0 + last_write_checksum: sha1:264664e3228d2989faab1411d8a4c7cd42663934 + pristine_git_object: 385fc889e42df9170b593b05b5ac2e162e752d9b + docs/models/runstatisticsresponse.md: + id: db4879d74056 + last_write_checksum: sha1:6fa5cada7be3412bb201456c542711a106b3dc29 + pristine_git_object: f6da598cd2b285b73028f8d64b692e43b06bd1e3 docs/models/sampletype.md: id: 0e09775cd9d3 last_write_checksum: sha1:b77964a7b39ec1b74f70925a39c30b23fad6ac43 @@ -3455,6 +3759,10 @@ trackedFiles: id: b73292165d87 last_write_checksum: sha1:6585beed45b4f6ce8188348145a148fb3380cf74 pristine_git_object: 6723310e9e340eebf58f11dfdc2417d030a87a60 + docs/models/scalarstatisticvalue.md: + id: 4b7255eb4d2f + last_write_checksum: sha1:afdad7ec8d19335d87abfe118f8419fdf550bf1b + pristine_git_object: 95e9f8d1c4a0d90fff8ef2b52d2bd1592ec1b5ea docs/models/schedulecalendar.md: id: 60c22b27e191 last_write_checksum: sha1:6c5457c6c0f2393e41c297e42d25ca95a14f752a @@ -3511,10 +3819,46 @@ trackedFiles: id: c7d8338540ba last_write_checksum: sha1:08e688325601e4c4614cc6b7264ea4d2f631da36 pristine_git_object: 0dc29aa5d453a82d0366ea003ab6e5710e2b1e3a + docs/models/scorefilter.md: + id: c0a8d95f1377 + last_write_checksum: sha1:e72186908f13f4236cf0d0caa9dee9a23c91f0b9 + pristine_git_object: 75212b1b647349d060a3570e05231e68ddf6cc47 + docs/models/scorefiltergroup.md: + id: ff178d5fc73a + last_write_checksum: sha1:e46537e67d0166f308b9f3a6e1c69bb7e1e6476c + pristine_git_object: 51aa58e9fb32bebc28165cbc3fb006528ad6535d + docs/models/scorefiltervalue.md: + id: b5846cfe0e6d + last_write_checksum: sha1:9b428fffbdf3faaa8a09a3ed1be1cae7cb7b8f27 + pristine_git_object: aacbe8c8460b9a5a2652b6258149232cf5d0b05a + docs/models/scoreoperator.md: + id: b9287a0bf2df + last_write_checksum: sha1:ad1679de5517e6fe745575b9c5b1988f5aa6a7fc + pristine_git_object: 08a41db19dd00dc9ca86ed799f01de43dd92f5d1 + docs/models/scoresortinput.md: + id: 811a9d9273d6 + last_write_checksum: sha1:618189098772654e3c02b07693b6f747038d8d53 + pristine_git_object: 019fa45c1f1184b0497ebea0a1fef265f18db695 + docs/models/searchallevaluationrunsresponse.md: + id: 134866e264ce + last_write_checksum: sha1:b22c5b14a67af9c2e622aa861403eac339de3adc + pristine_git_object: bbdc662d0b49b278b959325703dce6967f6d14d8 + docs/models/searchallevaluationrunsv2v1observabilityevaluationrunsv2searchpostrequest.md: + id: 05019c970d27 + last_write_checksum: sha1:1e37b38465dbe5872db70a314fc90703671d005b + pristine_git_object: 93daabc04135b2f309f31eeff9f202020c9e34ac docs/models/searchchunkresponse.md: id: 171c66e40abd last_write_checksum: sha1:96149e64b9b4f15416422fd881b7db8570bc62ce pristine_git_object: a343864848459efd97c72ec5fdd09608ff50116d + docs/models/searchevaluationrunrecordsv2v1observabilityevaluationrunsv2runidrecordssearchpostrequest.md: + id: 7e4746a33703 + last_write_checksum: sha1:2e13b25bae6cbb8532b9c19750a2132876972d9a + pristine_git_object: 83aa8dfb36bf8ca7d3ecdb47f5c50752998f75f0 + docs/models/searchevaluationrunsv2v1observabilityevaluationsv2evaluationslugrunssearchpostrequest.md: + id: 2eff25ebf7ee + last_write_checksum: sha1:75911387160d66422f731dde80a792d983354321 + pristine_git_object: 85185d2cf93812696b1d329dd67bd69e356a0bc0 docs/models/searchhitresponse.md: id: dfa1c1b44d19 last_write_checksum: sha1:864fb1b9f1115f5e27f5305831f48d1707d203ee @@ -3635,6 +3979,14 @@ trackedFiles: id: 38c985ca6ede last_write_checksum: sha1:f82ac07d517e89bfa8044eebff6f9f7aa56f6c77 pristine_git_object: f65d7924388b842863deddb0e52d4376f2e28925 + docs/models/simplenumericstatisticspec.md: + id: ee9d36640e49 + last_write_checksum: sha1:9bcb3b4243fc320051e50890eab7dda9f8ca1b47 + pristine_git_object: 9c8327137404dba3596b491e0672bd0e14410ee6 + docs/models/simplenumericstatisticspeckind.md: + id: f6f2405aab52 + last_write_checksum: sha1:261f8688fca9d7a302d0dc694c0a5ed10f5558ed + pristine_git_object: 6031ef2bd6a49271ac91c9f52aa33d35244ab07b docs/models/skill.md: id: 894e491446cb last_write_checksum: sha1:ce3e2859e0f937cf1935e3f65ff3f6e40da649dc @@ -3695,10 +4047,18 @@ trackedFiles: id: 1bf623cd7bb3 last_write_checksum: sha1:e514f325543c209b0d86b9a445f2c8696f171cfd pristine_git_object: 48eade7acba08e0189f7405636d67dd0284b8ab6 + docs/models/sort.md: + id: eab5be40af59 + last_write_checksum: sha1:6d451a992b6c62b423c8e8011b6f5ad83560b442 + pristine_git_object: 0d0c2db40c7bae15b523444f616ed13dd2302fe1 docs/models/sortby.md: id: ba9d0fca86fe last_write_checksum: sha1:d85f5663c0b7e704c8662f4257a3574cbc3117f5 pristine_git_object: ef56a615c87d604f7b245cc1657794b1a8f97ff5 + docs/models/sortdirection.md: + id: 4378aa46e9d1 + last_write_checksum: sha1:07ecb8d37c65d7387f6b19c92d6dd5bad0a2be53 + pristine_git_object: 30efc66e8867c14c99efa81ef2e6692f826cffc5 docs/models/sortorder.md: id: 9d51d68607b9 last_write_checksum: sha1:f00f2d159587c7241e96a5c24282d041ced281a7 @@ -3741,8 +4101,8 @@ trackedFiles: pristine_git_object: 9b06e46475dd6160588ce4fe9d275c2f2454a6c0 docs/models/speechrequest.md: id: 1403855cf560 - last_write_checksum: sha1:eff10ef49a431dd4c111cd23be2780733418cf60 - pristine_git_object: 7c3d7b06ad5ff5118637cbde2df1fb47ab50a651 + last_write_checksum: sha1:3dd89b9deacddb8e3a6425980378109ef2136013 + pristine_git_object: ad2cb2e2f138545fdc82ee7c85a7b6a3e66252f3 docs/models/speechresponse.md: id: be437798d476 last_write_checksum: sha1:c1c23ed7f45484831d04ca5bc12a28b4e91cd0d0 @@ -3779,6 +4139,10 @@ trackedFiles: id: 7718c2ec0f79 last_write_checksum: sha1:57f62290d632ce49eb365d196c42675d7399c740 pristine_git_object: 79b57f64c7a6273521c9e070448916d389c22f39 + docs/models/statistic.md: + id: 4ebaea7e9bde + last_write_checksum: sha1:72c5ea44fbfb55682e16b7c82cf58a4daa023cc6 + pristine_git_object: 4837a6a8fbe127b0f417ca339a6907c8d425f83f docs/models/stopdeploymentv1workflowsdeploymentsnamestoppostrequest.md: id: c652856a908e last_write_checksum: sha1:a5041d5bb8cf419d78983fe84ddc876c3c44f5e1 @@ -3847,6 +4211,10 @@ trackedFiles: id: 000f0770e0f9 last_write_checksum: sha1:d4f83b4d7cb9cc32239d5a4021db16012be5fd02 pristine_git_object: 8ea0a553e251491f80774d4d908ee84ad5ca43e9 + docs/models/systemfilter.md: + id: d3e44a243b49 + last_write_checksum: sha1:a47e6751800487e680386de0be5ec55a005c1c36 + pristine_git_object: 74167fffd4c667fb7c8a4e7b48af389ad8d91ab7 docs/models/systemmessage.md: id: fdb7963e1cdf last_write_checksum: sha1:c7603c5ce77ba2bcbda9eff65eeafdb1e9ecbec7 @@ -3859,10 +4227,42 @@ trackedFiles: id: cea1c19e9d7a last_write_checksum: sha1:986aec0f8098158515bbccd0c22e0b3d4151bb32 pristine_git_object: 40030c170746d9953d25b979ab7e6f522018e230 + docs/models/systemnamefilter.md: + id: 025db49cde41 + last_write_checksum: sha1:c63d29e90fdb396135e740a3f6badd30603f91d4 + pristine_git_object: 65ec3175dc0b791440d7f0f54d1e387af91f5897 + docs/models/systemnamefiltergroup.md: + id: abe95aa664dc + last_write_checksum: sha1:f0389d1788b0ce8585043f8e5c59b2a72c9b5bd6 + pristine_git_object: 49058d356aba2696a1f7b535321b7dcf0612b19a + docs/models/systemparamfilter.md: + id: 5795fedbbfcd + last_write_checksum: sha1:3fbebf4168b432b5d77ca61bf886f7f7a72f420f + pristine_git_object: 3126e8573663ca4eeffed356d9d71d86a5fe405a + docs/models/systemparamfiltergroup.md: + id: 439b15bf6078 + last_write_checksum: sha1:4c59a262ad7ee96f1b44bc942b658c54dff58db5 + pristine_git_object: f6b3a8a07e356a8c7a5ca141ce17d9338fad1e9c + docs/models/systemparamfiltervalue.md: + id: 53e91855f971 + last_write_checksum: sha1:75dc4ce3b3120d1253c58c0a307cf8fd853ebf07 + pristine_git_object: 5e2e7f756ddc81414b43564c3dee72d32bf3d5dd + docs/models/systemparamoperator.md: + id: 11923b0fc964 + last_write_checksum: sha1:4d14c5fe55f14d36a8020c644abd8d848c01631b + pristine_git_object: d6287bd23a85c5c6b00c7a051322249a0d2d72a4 + docs/models/systemv2.md: + id: 9d388dd8520e + last_write_checksum: sha1:e5c08f30767122d899bb609cd8396c42252088a0 + pristine_git_object: 068ac38ecfa94d9db09df6f4eb6212b6dc18c98b docs/models/tableformat.md: id: d8cd08c55c3c last_write_checksum: sha1:3ef23d504527602f2d0789d2cfb1a6629115f41a pristine_git_object: 8321a3090910115b586be900bcf23da5baf4c245 + docs/models/tagfilter.md: + id: d7b419f085c0 + last_write_checksum: sha1:c77ceb9adf68bf3822c0ea6c82f6dd342386aa87 + pristine_git_object: 8ae915c956cd85589377cdb0748d4efe322650d0 docs/models/taskselicitationcapability.md: id: e17695a516ab last_write_checksum: sha1:fc3c19832d82da18d181fbd3a4a519bf4d49e003 @@ -4199,6 +4599,10 @@ trackedFiles: id: 40615902c1fe last_write_checksum: sha1:d42a893a1c281ddfc8db957e168d832311917fe8 pristine_git_object: c2bc33738e8e34d66da61ae08a496384b6c623f0 + docs/models/unsupportedstatistics.md: + id: 337e18a193b7 + last_write_checksum: sha1:d2e6576f30bfc3612bef409bca98a63f3ca4da22 + pristine_git_object: 596843d67ec8bcc6db1e53b3313698466847af78 docs/models/updateagentrequest.md: id: 371bfedd9f89 last_write_checksum: sha1:73936f78ae35e5f84ebe32aabb150d6792ce40d1 @@ -4229,8 +4633,8 @@ trackedFiles: pristine_git_object: 2a5194e493808629a9031f518a36bbe68d2c04a6 docs/models/updatedatasetv1observabilitydatasetsdatasetidpatchrequest.md: id: 4be4c812536f - last_write_checksum: sha1:600212552869daf41c872ff6ec7a4cbff1e00b63 - pristine_git_object: 78eae8fb8193b201064416858d719fc28bb964b1 + last_write_checksum: sha1:57fc7a42412f12ab8bbd16770fbe6cd1f08de659 + pristine_git_object: 303e179a13fc68a5439226474c664e28b80c7dff docs/models/updatedefinition.md: id: 66f521a5a9f5 last_write_checksum: sha1:a5121824ba55698bcb31641641e73e2eeb19136c @@ -4321,8 +4725,8 @@ trackedFiles: pristine_git_object: 0eb31092cc21530e6acd9a5b3320c6b7b114927d docs/models/updatepipelinerequest.md: id: 1efe6e900bce - last_write_checksum: sha1:6855a42f8566847de071d6c4a524da1e0c9e1484 - pristine_git_object: edcafcc27b625c5706d2c1641c23dea018831eb7 + last_write_checksum: sha1:f4c3dad9b5716bceb5b5abe117ba10988a2ceb65 + pristine_git_object: cd85a51d7e46fab419c2d47a2df8e8e580eab1ca docs/models/updatepipelinev1observabilitypipelinespipelineidputrequest.md: id: ee1b796b2663 last_write_checksum: sha1:22b53a87753672f80911c58c6428129d2cee54fd @@ -4471,6 +4875,10 @@ trackedFiles: id: 64611cefbb5a last_write_checksum: sha1:84778b9e7284f24d5abf2b88f283665dbe7ab991 pristine_git_object: 71e875845d8ad430c71a46e60b92ba755207e498 + docs/models/voicekind.md: + id: 44b653533caf + last_write_checksum: sha1:598c1bb704f504a5e8dded6229dae77a0beab5f9 + pristine_git_object: 6fd0df86f31a5b28dc14a32f830bed5e2ab4e658 docs/models/voicelistpage.md: id: d4a0068905be last_write_checksum: sha1:ca55ccf1253ec3db561415eab63813bf502b014e @@ -4481,8 +4889,8 @@ trackedFiles: pristine_git_object: d2d40dffd0bcda10a2266c95ac951e8242209f6e docs/models/voiceresponse.md: id: f6523df1521d - last_write_checksum: sha1:e361f14123c1aa44196af7e3eee57a3d0f272da8 - pristine_git_object: a30a297ac25ae7fc4eafb30e11c813a165ea3baa + last_write_checksum: sha1:6f1b6a80189ad9a597839782721afbcb6081cce5 + pristine_git_object: c7f88311e862177f8067c7f829b989a6cfa750b3 docs/models/voiceresponsetype.md: id: 7012fe721db1 last_write_checksum: sha1:b9b80e0b742c820b1de379c91bfab8f77c04b2be @@ -4765,16 +5173,20 @@ trackedFiles: pristine_git_object: dc0f4984380b5b137266421e87a1505af5260e89 docs/sdks/connectors/README.md: id: 7633a87d946d - last_write_checksum: sha1:f3b04851cf53675ca4e0ec49db32aa782ba9b14b - pristine_git_object: 74957a6dd4159d3a5689085846b87bfb21a28b8b + last_write_checksum: sha1:8bda49ab537c80fc64d2101dc8805a7bdbc5009c + pristine_git_object: 27998993253580c3437153cc816f83a2a6979b41 docs/sdks/conversations/README.md: id: e22a9d2c5424 last_write_checksum: sha1:d0a4e55b1f1c9acc6e9b7cf5925faf930a911d26 pristine_git_object: 63cd80a4a655a5c139be79239b0787c3f90cdea9 docs/sdks/datasets/README.md: id: deb5d90f4faf - last_write_checksum: sha1:183b499c600848ed7b4806d66701fa48973a993b - pristine_git_object: 33ba11244708935709ba31a38b8320bd6d9859df + last_write_checksum: sha1:ea40dcac632cdc49a6b451154bbf707239c623b5 + pristine_git_object: beca199c491eec42386c6763367b231922454df8 + docs/sdks/datasetsrecords/README.md: + id: 4907d0e941a0 + last_write_checksum: sha1:becc43e06e8086bf32c5db5887c07b23ebd9cd84 + pristine_git_object: d6a095e3d7ab169613a8b3338fa72508235d0729 docs/sdks/deployments/README.md: id: e7c5559ab768 last_write_checksum: sha1:36ff6519a6b6da6164369d1d9eb6f31795d5b1fb @@ -4789,8 +5201,20 @@ trackedFiles: pristine_git_object: cb207d8be2ca86b00dc797fc06eabd1498adb770 docs/sdks/evaluations/README.md: id: d40a3d898554 - last_write_checksum: sha1:4c12e29c60837ed108888e91c3c06bb1a84d1bfd - pristine_git_object: 5b6c0a60822f3dc6ec06db7d8ec26e11f5466d63 + last_write_checksum: sha1:676af42517482879389290b07be58fea15ed5a2e + pristine_git_object: 4d55bc784a329b489469cc0f3c42396a9111ffdd + docs/sdks/evaluationsprojects/README.md: + id: bbc4beec3a63 + last_write_checksum: sha1:1a64335c47f3419bd29601acfb1be740f159a563 + pristine_git_object: 954c5f260f5a996f6846be39802e6a9ebaf179b8 + docs/sdks/evaluationsrecords/README.md: + id: 46f665aa3f05 + last_write_checksum: sha1:bd32b13af93195d77ddd7e895c5a578241cb7ec9 + pristine_git_object: f3138e3a8792c7aa9423e11955c8179cfb141a3c + docs/sdks/evaluationsruns/README.md: + id: 963f31accc15 + last_write_checksum: sha1:e1fde4f2bfcb625e5127d4307c27b6736c86763e + pristine_git_object: 4c545676bca14628932a3dfbc2729ea43ed69349 docs/sdks/events/README.md: id: cf45a4390b9b last_write_checksum: sha1:b025db8d28fda5180453b25f815d35f3b7eb7159 @@ -4843,14 +5267,10 @@ trackedFiles: id: 545e35d2613e last_write_checksum: sha1:3077599661d6cee22e3ef4b017074fc8f115d361 pristine_git_object: 31ab3bfd65826a3a07c224e10935768e839fea91 - docs/sdks/records/README.md: - id: db86bab024d3 - last_write_checksum: sha1:becc43e06e8086bf32c5db5887c07b23ebd9cd84 - pristine_git_object: d6a095e3d7ab169613a8b3338fa72508235d0729 - docs/sdks/runs/README.md: - id: 4598fd39b715 - last_write_checksum: sha1:2e39bc2e144354e34064a616a0bdb4dbd4a9cf20 - pristine_git_object: fb1ac1d7034d3d5be492dd90936501054de4e348 + docs/sdks/optimizations/README.md: + id: 51c08468cf58 + last_write_checksum: sha1:ee12d2a70c3b963055d0c3e1f89ed7043f841971 + pristine_git_object: 054c7233896226df670804e3d977d27c966df53d docs/sdks/schedules/README.md: id: 2f28c809a225 last_write_checksum: sha1:ed27d25b618632207500e122efa02e948d7f9b38 @@ -4877,8 +5297,8 @@ trackedFiles: pristine_git_object: 10aa9a19f066293d2b2f5c36a7849049ec51785a docs/sdks/speech/README.md: id: d5924688d48c - last_write_checksum: sha1:ad4d386e6d2b9b144d283ad72024eb140b7c5d96 - pristine_git_object: f750cd3ac01f4fb818f0f0c63b48a13bde1db5dd + last_write_checksum: sha1:7b2cdc86749dceb8cd0aae6310b60be563a4681c + pristine_git_object: 6cadbcae887dccf20cce14d0f3e823084185fa79 docs/sdks/traces/README.md: id: f3d9b8dc85fd last_write_checksum: sha1:94dc57c390098d441aeebff53d1ce5ef3572aa1a @@ -4897,12 +5317,16 @@ trackedFiles: pristine_git_object: 9cce61ba2f1897a7e8a462f2f685a681a9fc165c docs/sdks/workflows/README.md: id: 80c76ce944c0 - last_write_checksum: sha1:0a9532451f7132c0d2d3acf6b626545a66f360d9 - pristine_git_object: 4792615c386f1bb80980a704ac454d6b6788e37f + last_write_checksum: sha1:4ffa1eec7f076e12280b9bcc86dbda538096ef24 + pristine_git_object: 5da2fd8245527fba839ccc85de4efde9e1864984 docs/sdks/workflowsevents/README.md: id: 514b42269280 last_write_checksum: sha1:e1f79ed953c3f14770bb8d3f01ff84ac26ac0f26 pristine_git_object: a498da1e33ec81f6c818ff98b99cd5f79d0f4f3e + docs/sdks/workflowsruns/README.md: + id: f10b204fe1bf + last_write_checksum: sha1:2e39bc2e144354e34064a616a0bdb4dbd4a9cf20 + pristine_git_object: fb1ac1d7034d3d5be492dd90936501054de4e348 py.typed: id: 258c3ed47ae4 last_write_checksum: sha1:8efc425ffe830805ffcc0f3055871bdcdc542c60 @@ -4933,8 +5357,8 @@ trackedFiles: pristine_git_object: 5052bb072d14c65419bf49bdc1a47500cb03ae56 src/mistralai/client/_version.py: id: cc807b30de19 - last_write_checksum: sha1:be24637f37146238933c02eed929d1d06d9115bc - pristine_git_object: 09081afce85523d73fdc1d4ccbe11a721532b7ac + last_write_checksum: sha1:1039a9fe30fb0a172c432cee3650296638d6ddfb + pristine_git_object: 8ab8f2837d466193885c868607e2de767ab4274c src/mistralai/client/accesses.py: id: 76fc53bfcf59 last_write_checksum: sha1:2fcb8bfce98ee0c3207e6e037320416f7bb1f900 @@ -4977,16 +5401,20 @@ trackedFiles: pristine_git_object: aa0f29b1f1d3d5246c8f6a2d4a9720fa06ca3e83 src/mistralai/client/connectors.py: id: 39da03126050 - last_write_checksum: sha1:2cc709b232920276938ca74c4d33522344cfdaaf - pristine_git_object: 4de4eca019348e0cc9377fb09eb0629c4a918085 + last_write_checksum: sha1:fab4fe914f7e7169fdc697ffff0cddde2393ae87 + pristine_git_object: bb3fc4a1e937bb523427281f30e7373d00c13c15 src/mistralai/client/conversations.py: id: 40692a878064 last_write_checksum: sha1:37a8e5b453f5cd77dac8cfec4e2a744285069aa1 pristine_git_object: 1f467f42010c82c01979af14ec2cab7c6e9838c1 src/mistralai/client/datasets.py: id: e5a6ae2a2d85 - last_write_checksum: sha1:a5b90d898f8097936590da091df7dd1bd3195530 - pristine_git_object: ecf6aef70746e046b6613906e3ce43ca421d93ba + last_write_checksum: sha1:157a8949ab6c389d39c722a5160fee0b865af32f + pristine_git_object: 57699f5c5228e7f5ddc5fb7827f355ee8a58c15d + src/mistralai/client/datasets_records.py: + id: 8857f490a224 + last_write_checksum: sha1:7d16e2ca5776b9a939584a090422974d7197a40d + pristine_git_object: 3c56085cbad0bb8b72c47f65bf71662dd84d6c14 src/mistralai/client/deployments.py: id: a874b267fcb9 last_write_checksum: sha1:5cff69c4087bc456a8d1980da3489177b62a9f37 @@ -5029,8 +5457,20 @@ trackedFiles: pristine_git_object: 20a13102ef688244e888cad21e49afb86b157944 src/mistralai/client/evaluations.py: id: 911a1a741d81 - last_write_checksum: sha1:0827521bac8d064ae99e0ab6d490285070e85bd5 - pristine_git_object: 9376eda0a4b1d2b5e44f016122e161873ffdc925 + last_write_checksum: sha1:5c80848de141806e61f3947ad3cc731ecae564d5 + pristine_git_object: 7ea645a19197cbdc1a167888182d9ba9bee75e86 + src/mistralai/client/evaluations_projects.py: + id: 89e90553c9da + last_write_checksum: sha1:7f0820b2d0647f9c52cb23243f9fec4821216a44 + pristine_git_object: 08e2dfcd75413607a4a4ed15a956cd290dbbf2c6 + src/mistralai/client/evaluations_records.py: + id: 55a4725fa42f + last_write_checksum: sha1:bb9ac9a04170b896beb44bd192d842a1e0f03b91 + pristine_git_object: 4386edd7f09f38bcecf556b101c75e534cccd345 + src/mistralai/client/evaluations_runs.py: + id: effa198cccb9 + last_write_checksum: sha1:c693bbd7b3930f3186f355fea7f5cd077ebb6886 + pristine_git_object: 697a462ce2bca82b9097c5252f67b185c32edbd6 src/mistralai/client/events.py: id: ac9b961cc70d last_write_checksum: sha1:4e5dd8bfa3cda63db7f4e9ecb0c5c27d818460e9 @@ -5081,8 +5521,8 @@ trackedFiles: pristine_git_object: 41d7f799e8a2afa860b4193f7752e094f1c624b2 src/mistralai/client/models/__init__.py: id: e0e8dad92725 - last_write_checksum: sha1:f4a9bc53f2fe7ff53ce4b7cdca891ec95c94fb13 - pristine_git_object: 9f5028964c8db72e1e2108fb71ac15c082450dfd + last_write_checksum: sha1:47daa81c9e9793e476aa14077bd5f4ce2df76170 + pristine_git_object: 3b65d19f9e93f9a8d7a1165f6663cd7505614172 src/mistralai/client/models/accepteddocumentresponse.py: id: f529b784daff last_write_checksum: sha1:2eb3c7dc0d7165987aefda841b1ceada6698c15d @@ -5331,18 +5771,18 @@ trackedFiles: id: b4d3fb07196e last_write_checksum: sha1:4a00b691a67d9078520325440ac1cc63b44876de pristine_git_object: f214209140091d1dab7b7917176eefe1ca0bd5be - src/mistralai/client/models/authdirection.py: - id: ad8790fb5fab - last_write_checksum: sha1:36a82cc9ebaddc16868548d88bf10543018b758b - pristine_git_object: 666b7b55dd1740c9527f6018cb48e5694a15c221 src/mistralai/client/models/authenticationconfiguration.py: id: 97b5056c29fb - last_write_checksum: sha1:624ccbf5f2b2810d770ea1a7ffae9648f28c274f - pristine_git_object: ff29038ad243423d740cd166869291d17c2eb6b0 + last_write_checksum: sha1:8f1baf4cafb19c4e2d5f7b10c380e99477a51fae + pristine_git_object: d7eda889ce4a817802bcdb3a731ae4131526b66a src/mistralai/client/models/authenticationmethodcreateorupdaterequest.py: id: 240c643113bb - last_write_checksum: sha1:c2aa04bec79a7649930cce30cd96ec547fd4717b - pristine_git_object: 53d08e4eb6bfc9f59efeb85721ad505f2f6fae72 + last_write_checksum: sha1:0da7803adc6b96a8566c4970dae476cb2153678a + pristine_git_object: 0ddd2a0ffc64442caf994ea897cb026bbf33aea0 + src/mistralai/client/models/authenticationtype.py: + id: b403278039c5 + last_write_checksum: sha1:920fe3e0860e9919bef9c54ee0f2ea954e3ce838 + pristine_git_object: ac0dcdba69470eb961aaaaac155e94e90c4616a9 src/mistralai/client/models/authstatus.py: id: 0f25b817bca6 last_write_checksum: sha1:0111c21d1b428ab23537769e64e076d170a696b8 @@ -5411,6 +5851,10 @@ trackedFiles: id: e26fc5a228af last_write_checksum: sha1:f07c1fd93993863b4335d926089d1c2e1bae8d65 pristine_git_object: 0fdca43dfeffb886feb07f65f3acceb08f6d9337 + src/mistralai/client/models/categoricalstatistics.py: + id: 342cad469188 + last_write_checksum: sha1:109108e7e6af5ed55599c2e0a9c97a84ecbcac10 + pristine_git_object: 433fd027e5cf60bcb11f67c794a4f219b54bbb3d src/mistralai/client/models/chatclassificationrequest.py: id: afd9cdc71834 last_write_checksum: sha1:47b1601331d17795959fda9b3dc9fe3a74d528aa @@ -5443,6 +5887,10 @@ trackedFiles: id: eaf279db1109 last_write_checksum: sha1:0e09986f5db869df04601cec3793552d17e7ed04 pristine_git_object: 4bc21a58f0fb5b5f29357f2729250030b7d961bc + src/mistralai/client/models/classificationstatisticspec.py: + id: 069ccb477b53 + last_write_checksum: sha1:792b1564c68e58928c40d68e7a480d3a18a0c87f + pristine_git_object: 80ac1c881c7306f13f0ac3651c5a32737ac4f846 src/mistralai/client/models/classificationtargetresult.py: id: 2445f12b2a57 last_write_checksum: sha1:9325f4db4e098c3bf7e24cfc487788e272a5896f @@ -5507,6 +5955,14 @@ trackedFiles: id: 8e822f11a1b2 last_write_checksum: sha1:117cc6daf733fa5bb2286dc01e2b220165ae074b pristine_git_object: 503b5e7fc16ff1b8195be3d8108d2be188fb5d64 + ? src/mistralai/client/models/compute_filtered_run_statistics_v2_v1_observability_evaluation_runs_v2_run_id_statistics_compute_postop.py + : id: a9bcc643cf6a + last_write_checksum: sha1:6c3f7e18a33fe11a4604600398a7b317e210a71e + pristine_git_object: de900705b3ee4f8e5f4ce3fced501bf22072ab85 + src/mistralai/client/models/confusionmatrix.py: + id: ff643c80bbd3 + last_write_checksum: sha1:564e30160b58d9173f16c76a39b69db1cd357156 + pristine_git_object: 32eea9194e02a79d8382fb1833c1b17ca0faa82f src/mistralai/client/models/connectionconfigtype.py: id: 52923bfd57d3 last_write_checksum: sha1:e514f14e429a909487cfe7e53b9a2c8b3b019ad7 @@ -5557,8 +6013,8 @@ trackedFiles: pristine_git_object: fc1f2e259bb5e93f9239fe38992d1ae134bf5111 src/mistralai/client/models/connector_get_auth_url_v1op.py: id: 2e6b9ab43d1d - last_write_checksum: sha1:7b66d630176cad32277ad4c1eaef935ba63780d8 - pristine_git_object: 1ff713920027c4fc68fa84a03158297949e86c48 + last_write_checksum: sha1:154899aba40cdab193c43ffeef3b14f9c1a7fa6c + pristine_git_object: 6886fdb806f93846ea60232f962d37a9e240cd0c src/mistralai/client/models/connector_get_authentication_methods_v1op.py: id: 6861e4d57959 last_write_checksum: sha1:7ded9e81cb18cb16991a6b1a58789acf58828df0 @@ -5569,24 +6025,24 @@ trackedFiles: pristine_git_object: 56696502c9fb5fb80efae7a349a70d349850dbd7 src/mistralai/client/models/connector_list_organization_credentials_v1op.py: id: a52ee058feab - last_write_checksum: sha1:07259200003943cc65e22780a2c8bdcc64c09c36 - pristine_git_object: 7e87736ba66d43fb1609dc96817dac3d9a8899dc + last_write_checksum: sha1:119db5f9f2684c37730ff2f0f9f0d68cf463a795 + pristine_git_object: 0732c8e77e5b530d717dfb9ce6630b30fdb30ace src/mistralai/client/models/connector_list_tools_v1op.py: id: 4c6ad704479b last_write_checksum: sha1:24f20a9c3c557a05ce2da139ba4c2530ea9c3077 pristine_git_object: 0e0698b73410734d7c0639b10b506120a66ef900 src/mistralai/client/models/connector_list_user_credentials_v1op.py: id: 106e8fba762d - last_write_checksum: sha1:b17c3afeb95e23559899a6788a989e876895b0cc - pristine_git_object: 5699528101989723325c86d3b0939977ca4c394c + last_write_checksum: sha1:403755a821b61e82c68f3080fefeb98d2f6f76d8 + pristine_git_object: 8039e44bab0f131e1ad87814796f7437a9407b0d src/mistralai/client/models/connector_list_v1op.py: id: 5ec0889995f5 last_write_checksum: sha1:dbad162a991ead9adbb54b05b93f6b1c28e51fbc pristine_git_object: fdf5b521b2d5474357aa111ff9cfe0f796042568 src/mistralai/client/models/connector_list_workspace_credentials_v1op.py: id: de7c431e8a54 - last_write_checksum: sha1:5a0a9acb77b59b2681b437476a164117ee793d35 - pristine_git_object: 35b14f8bffd77ebf35d79358324822f298ca1921 + last_write_checksum: sha1:3e7fda270cbc4ace3465ab34b267642c04ae9795 + pristine_git_object: cefe59d80b0687aa22e48cd16dfc91adad042840 src/mistralai/client/models/connector_share_to_organization_v1op.py: id: 6a1f29c81825 last_write_checksum: sha1:d2ac54ce47975941c9c7eae465dd9bc6215630ac @@ -5657,8 +6113,20 @@ trackedFiles: pristine_git_object: b48c3c87f8ec9584ff62d9efbab1dbbd3a231ada src/mistralai/client/models/contentchunk.py: id: c007f5ee0325 - last_write_checksum: sha1:704b9565d900be8476663660883bf84453f61cf1 - pristine_git_object: 1490577d725900f719344b6a604e57b9771e5994 + last_write_checksum: sha1:986697df39b63d0b4d30136e561ce811ddaa8d54 + pristine_git_object: dc34ed6d4aa6d1282cd58ed69827d3868dd28522 + src/mistralai/client/models/contentsearchfilter.py: + id: 0936d19af260 + last_write_checksum: sha1:2792c79bad3b671858a8292116a20c5ed7ac8372 + pristine_git_object: bae545c181a9a7658a8c918b41f5ead5f51d25ba + src/mistralai/client/models/contentsearchfiltergroup.py: + id: afebb9b506b7 + last_write_checksum: sha1:f8e889f1612a822c85bb1bbf2d73c9c933dae1c8 + pristine_git_object: d5d13b5c982e7bc57e0bf4f25c5da0a2302e304c + src/mistralai/client/models/contentsearchoperator.py: + id: 20dbafcbd042 + last_write_checksum: sha1:df97929f2a23a35c4cbcbab9a0c2f594dce34c40 + pristine_git_object: 1d3215d94f5a95a6819f184c5d0703850c2dfdaf src/mistralai/client/models/conversationappendrequest.py: id: 81ce529e0865 last_write_checksum: sha1:6d7cbbeff8bca89d21a17318df319812ff772cdc @@ -5713,8 +6181,8 @@ trackedFiles: pristine_git_object: 13e87c4aabf89b567ba9e566cd8762c962127d50 src/mistralai/client/models/create_dataset_record_v1_observability_datasets_dataset_id_records_postop.py: id: 1ddc53a46c74 - last_write_checksum: sha1:6f127a5a3d6e1f90edeadc327e66902063c5ce44 - pristine_git_object: 64d702f7e9a9c451b98dadcc85ad4869b47874b5 + last_write_checksum: sha1:974f5389c3d9d98ff83fd8364003a0ba18cad6df + pristine_git_object: 798cbc747879696af4cf075189208438c7362370 src/mistralai/client/models/create_index_v1_rag_managed_indexes_postop.py: id: 07cbec23d26c last_write_checksum: sha1:590ad3f90b316a7abdc90e860abdd18e5fc0a1a9 @@ -5809,8 +6277,8 @@ trackedFiles: pristine_git_object: 06e6fbf99de4d7806e2ce19375d2870d8c8d0ab5 src/mistralai/client/models/credentialsresponse.py: id: 80cc6fb316f9 - last_write_checksum: sha1:f8128ce2ec4245cf11563cc6bf4bd62cb17725d6 - pristine_git_object: 1d8b533a0f9a9b85a97ffe02595f43af838c7aa8 + last_write_checksum: sha1:331201b96f94efa1094d853f9391ebb9619ff60d + pristine_git_object: d21279fb9c626b609ecfa40fdbb2e53d5694868d src/mistralai/client/models/credentialsstatus.py: id: 14e3a65841d9 last_write_checksum: sha1:8d9f0b9740a512dadc9001b3780c64cd2a71788f @@ -5877,8 +6345,8 @@ trackedFiles: pristine_git_object: 3d99b9405502d8a8979a8398799984cee2dcddec src/mistralai/client/models/dataset.py: id: cbf14670ee00 - last_write_checksum: sha1:70c4233445b12201475b2f6c6d11d13a7f3f522b - pristine_git_object: b4a74b07032cb57e3821079d96de82a2045e611f + last_write_checksum: sha1:6ca36b278efe3e87b2ba9f3bb21534c70f387783 + pristine_git_object: a53ff2de44977f57997bb864413af85a9b739582 src/mistralai/client/models/datasetimportresult.py: id: e85c28e35518 last_write_checksum: sha1:11d0abb7fd22e456bbf9dcc411505f664f992b41 @@ -5889,8 +6357,8 @@ trackedFiles: pristine_git_object: 04cf8b3e0cf9421ebb7c0683bcc3442c99ee24e4 src/mistralai/client/models/datasetpreview.py: id: 128c29db3f37 - last_write_checksum: sha1:8be4527464d6630a3aec3ca5e528d4eed44147e5 - pristine_git_object: e50d0898a3bd2d24e84ab8f22be12e8d770b7278 + last_write_checksum: sha1:8fc2916ac3c33f4cce1fd3f00756685c13abfffc + pristine_git_object: 1e071bcf2f12505be43a9854ab7a13d7fcb0fb44 src/mistralai/client/models/datasetrecord.py: id: 87ddebf2a0ce last_write_checksum: sha1:b9d138f81a6ddeaff7e28e9579343902434b0cdb @@ -5905,8 +6373,8 @@ trackedFiles: pristine_git_object: 5685287b9ca76e56609e83236b10fa2fcc39ff67 src/mistralai/client/models/delete_dataset_v1_observability_datasets_dataset_id_deleteop.py: id: 446419cd07d2 - last_write_checksum: sha1:fb4311dbc3bde1c1ee42e02a11d4933920465d39 - pristine_git_object: 84dd3c262112c532218628c873d6ef81d5806549 + last_write_checksum: sha1:4b2255e2e2126639771fc54d63e5f6c86d6fc394 + pristine_git_object: 5e7b489a85125ac0d96c5d374f504da0f1a16a88 src/mistralai/client/models/delete_deployment_v1_workflows_deployments_name_deleteop.py: id: b669fcc8cb57 last_write_checksum: sha1:bc9fec31532db43f493b4d4363fd17b0dc29918c @@ -6135,6 +6603,54 @@ trackedFiles: id: 7e27f8202d48 last_write_checksum: sha1:bf4a8532401a068fb245aad9aedd6de4ec8ce907 pristine_git_object: 0dca8201d06ea9e85e0c88bb649f97d329245057 + src/mistralai/client/models/evaluationrunfilterinput.py: + id: eb0b53418ebc + last_write_checksum: sha1:240a04003a7842fde49c4e14d0b92e04f25e70e7 + pristine_git_object: 49bb23ef01747d3940b257c1102d699afb0bd566 + src/mistralai/client/models/evaluationrungenerationv2.py: + id: 356fb59fd50e + last_write_checksum: sha1:63b7fc1f2aa9c5e78952899d52773088e1741a39 + pristine_git_object: beaa7185e9009d379cad6b3f3213c53ca36c8e89 + src/mistralai/client/models/evaluationrunoutputrecordv2.py: + id: 4c76fca3bafb + last_write_checksum: sha1:8673d361cc40bd02a0bb62efbd7315b94a8d0e4a + pristine_git_object: a41b4300e6073ba036a9df7d7646b8d8feb4689a + src/mistralai/client/models/evaluationrunrecordfilterinput.py: + id: 965da983d67d + last_write_checksum: sha1:828a4d76fb3a7b5ec5e687d0adc098e09273dd0d + pristine_git_object: 95f7061b8d1d4fa55365782c5966e8d9664d9c52 + src/mistralai/client/models/evaluationrunrecordv2response.py: + id: 62ba9c20e6f0 + last_write_checksum: sha1:50ab91213af25237a62b79feb9bfe9038d78506a + pristine_git_object: fc0d4d9ab26c3dd18ce7c9dd529ce5135d6b6be4 + src/mistralai/client/models/evaluationrunscorev2.py: + id: f7ab75e6cd88 + last_write_checksum: sha1:7df7def37ad739f6c55ebb5e5ff511cf8a9bfdd7 + pristine_git_object: a9093050ea47018c803426c2fa91d23f36583873 + src/mistralai/client/models/evaluationrunv2response.py: + id: 2b78bd73f956 + last_write_checksum: sha1:446b4a785fe2cb330dd5bd421e8abf10b4fd493c + pristine_git_object: bfc5e5746210e474917da3f1827dcb5de80ef803 + src/mistralai/client/models/evaluationrunv2withrefsresponse.py: + id: 9f37bbc99595 + last_write_checksum: sha1:038504fa401c2be417853baa5cf2ad9ea5d0d038 + pristine_git_object: 5ce234b1f38a28d3d88751395a40dd0a21d98a55 + src/mistralai/client/models/evaluationsv2.py: + id: 6d6d84cb7b61 + last_write_checksum: sha1:ffaf263e89b86a9306dbf9694678258ca3622089 + pristine_git_object: 27916433953c08f8546be67089dd954d39194768 + src/mistralai/client/models/evaluationv2.py: + id: a5a47ded8cec + last_write_checksum: sha1:0ead7a1a6e0f0186fc487fbeccc41fa854ff0f3a + pristine_git_object: 7b7d7108f42dadc20cbdee61da9668ebb2b8785e + src/mistralai/client/models/evaluatorstatistics.py: + id: 461cafd069df + last_write_checksum: sha1:505943d6b1e848ec56d7d315fcb61cf4d81dac27 + pristine_git_object: 2073fcf9ff1b45a98eba228d09dd533c57207d7b + src/mistralai/client/models/evaluatorv2.py: + id: 7a1244da46fd + last_write_checksum: sha1:cfc40979956ed89c7646939870820205c04d3565 + pristine_git_object: 1e150d6bcf6040b036dd1e400f06621d2a52528d src/mistralai/client/models/eventprogressstatus.py: id: 48623263df72 last_write_checksum: sha1:fd2733c3772a53ef2de3a975c7395959750db86a @@ -6177,8 +6693,8 @@ trackedFiles: pristine_git_object: b0d561a49b3cba43175fd27920fcf2d93a9764e6 src/mistralai/client/models/export_dataset_to_jsonl_v1_observability_datasets_dataset_id_exports_to_jsonl_getop.py: id: 74f5f3183b64 - last_write_checksum: sha1:1bbc92f77bfad6155f3d3fa87bc531504100646e - pristine_git_object: 6da73b3718e51600d7a373e569691d007bd0a2b8 + last_write_checksum: sha1:4e4517a0a21aac9a364f93882e7d7e2b3b6e0cf1 + pristine_git_object: 07759f4836fd065b687f8b70fa230b5a601e1bb1 src/mistralai/client/models/exportdatasetresponse.py: id: 22cc29d258db last_write_checksum: sha1:7b9a02caf6f2f2d44411b41055282b355524a6f7 @@ -6211,6 +6727,10 @@ trackedFiles: id: 8216f7641078 last_write_checksum: sha1:515325af0dc26a176f7fddd5860b7f8bc6d6ae33 pristine_git_object: d4f6ddcb41e9a7204ff66a9b25c1d9ba5ba127cd + src/mistralai/client/models/fieldsortinput.py: + id: f969465f5b09 + last_write_checksum: sha1:25e3743bdb5d948f7cb44fa624462adfb0996cf3 + pristine_git_object: a3ee82355cabec4236b6155e2495de861df3976c src/mistralai/client/models/file.py: id: f972c39edfcf last_write_checksum: sha1:f2782b7452ebf703364e64bae64ed9cee1d5da05 @@ -6221,8 +6741,8 @@ trackedFiles: pristine_git_object: bb757760cf4172543680ca6fe448c5a112c38a1c src/mistralai/client/models/filepurpose.py: id: a11e7f9f2d45 - last_write_checksum: sha1:154a721dbd5e0c951757a596a96e5d880ecf4982 - pristine_git_object: eef1b08999956fd45fe23f2c03bb24546207b4e3 + last_write_checksum: sha1:466e22b65ec2bb8e0a09249d6462b0da913a1415 + pristine_git_object: f28b9a2b6624a5aa2025bfeed73526ed1e99270e src/mistralai/client/models/files_api_routes_delete_fileop.py: id: 2f385cc6138f last_write_checksum: sha1:e7b7ad30a08b1033ecd5433da694f69a91029bfc @@ -6255,6 +6775,10 @@ trackedFiles: id: 11a670fa3b71 last_write_checksum: sha1:23f0c457bcdb90e76f49ea2ae95e0f983877513a pristine_git_object: 7ad424930d85a2870985b359cf86da2dea1ba690 + src/mistralai/client/models/filtercombinator.py: + id: 6772c448999d + last_write_checksum: sha1:2ad4fc8f459a8171651303c69ba6b9ad16403a7b + pristine_git_object: 5b73f6df9e7c567c2ca5d5e7d3ac119d69a52a12 src/mistralai/client/models/fimcompletionrequest.py: id: cf3558adc3ab last_write_checksum: sha1:d5b1fae35876416fbd463a58694cb33f7b971aec @@ -6325,24 +6849,24 @@ trackedFiles: pristine_git_object: 566d5d8316e24bb48b6e5695e6aecdb84b6d7f9b src/mistralai/client/models/get_dataset_by_id_v1_observability_datasets_dataset_id_getop.py: id: cfd3282e7f33 - last_write_checksum: sha1:8ee5bdeb7fc75e1d91f0d5218bb717abbf2dba48 - pristine_git_object: ec90cd8a7a58d419162157981016d903b429b164 + last_write_checksum: sha1:588b4681fe21b2fd4a74d74e2f872bc032547e45 + pristine_git_object: 0c25bc0b53d6aed45e146ebc397b744ca8d3ceaf src/mistralai/client/models/get_dataset_import_task_v1_observability_datasets_dataset_id_tasks_task_id_getop.py: id: b45f77cb328c - last_write_checksum: sha1:344916eda39007d5bcd3eaf717fb1907281441d1 - pristine_git_object: cf9ac0e265cf1446740441a6a165bc423f36aa17 + last_write_checksum: sha1:8e9416e0ce05be0b5bfc814dd185683f6ac7b673 + pristine_git_object: 0a1d1d8553d6d493411cbf9189b05b4089d0712c src/mistralai/client/models/get_dataset_import_tasks_v1_observability_datasets_dataset_id_tasks_getop.py: id: 07ece48f664d - last_write_checksum: sha1:4083c574a0485854c1ca3b0128b4a50ef15e464b - pristine_git_object: a47e64414abb7f4088d1bfdf656da3901d6894f5 + last_write_checksum: sha1:a70a2bbc91944cfc712c5af6522d70d8d1b4e802 + pristine_git_object: 7e5e2113ea4b0186883936c9b39bb9c95e8e58cc src/mistralai/client/models/get_dataset_record_v1_observability_dataset_records_dataset_record_id_getop.py: id: 6ea6a0dab32f last_write_checksum: sha1:fecb21ae77e49f8b6cd57e3e870f302497831949 pristine_git_object: 3265a0f09fa8c6fce4d967faf7e59df3e987b4b8 src/mistralai/client/models/get_dataset_records_v1_observability_datasets_dataset_id_records_getop.py: id: 77967c965aea - last_write_checksum: sha1:4c6983055a505ca8c5959f7a7e4226290e759acf - pristine_git_object: c6a0514f6d03f0c16e219a764ba0e31a8a40271f + last_write_checksum: sha1:b2add362991af8584a68299ba3dd05f6ba89abbf + pristine_git_object: ce051f76adb44a7e495c068ee524210593d2f3b6 src/mistralai/client/models/get_datasets_v1_observability_datasets_getop.py: id: 3e4f4e2447ac last_write_checksum: sha1:033fba3dbc2fd31ffbcc83fcd7145e75201c9973 @@ -6355,6 +6879,18 @@ trackedFiles: id: 3fae92e2573a last_write_checksum: sha1:2cdae63d01da8e6b26638f4d6cb2eb48ca671a7c pristine_git_object: b5e21b0b5f9073cb66219af1caca7130ecda29c8 + src/mistralai/client/models/get_evaluation_run_record_v2_v1_observability_evaluation_runs_v2_run_id_records_record_id_getop.py: + id: 6219e1cf2b23 + last_write_checksum: sha1:637352fdd0e386fa0e395e64ec524184e4e2efec + pristine_git_object: 0f8bbff7514b026828a322e539848848b5e78ca7 + src/mistralai/client/models/get_evaluation_run_v2_v1_observability_evaluation_runs_v2_run_id_getop.py: + id: 8e325b162706 + last_write_checksum: sha1:1539d484c315894d442a953e76b529deb3ade303 + pristine_git_object: f522cd688119a9520fc837196c57463f8352b069 + src/mistralai/client/models/get_evaluation_v2_v1_observability_evaluations_v2_evaluation_slug_getop.py: + id: d919a706b685 + last_write_checksum: sha1:4c49aa6bf05384e59d88aeebaddfb1a8af619980 + pristine_git_object: d4ba447940db38a2dc76d908ce5a93e46ea9811b src/mistralai/client/models/get_index_v1_rag_managed_indexes_index_name_getop.py: id: 192042c7351d last_write_checksum: sha1:e60862ea91ece868a0b2b65bc36926dcbf751747 @@ -6371,6 +6907,10 @@ trackedFiles: id: 5cb47b819527 last_write_checksum: sha1:8fd3f5fffd1abbbd434b9fb701ef81667eec7e1c pristine_git_object: b4a4e4062ee815560a2b2c6400dd59828db7f74b + src/mistralai/client/models/get_optimization_v1_observability_optimizations_optimization_id_getop.py: + id: 4991089a525a + last_write_checksum: sha1:8268ed86e8fe9308752d25b9c10cba3a9bb1fa32 + pristine_git_object: d5d177f5f315477d081d09d9f96106d910f23ffb src/mistralai/client/models/get_pipeline_config_v1_observability_pipeline_configs_pipeline_config_id_getop.py: id: a6675e628904 last_write_checksum: sha1:9835caa8c604d789820cc5c4a3a8d7f470fd9d1f @@ -6379,6 +6919,18 @@ trackedFiles: id: 552fe66cb0c9 last_write_checksum: sha1:219273cdf9049edc2e3a66d741bdcc64a05b9e83 pristine_git_object: 30a963c8cb1311eb5d364ceb926660ea3fdf0586 + src/mistralai/client/models/get_project_evaluations_v2_v1_observability_projects_project_slug_evaluations_v2_getop.py: + id: fd13fd3e0518 + last_write_checksum: sha1:5a5c94cb3d1d8e232fa58ebd18adb282ec2a6fe6 + pristine_git_object: 9e590ec1640ff09dbcab615659658deebbb27703 + src/mistralai/client/models/get_project_v1_observability_projects_project_slug_getop.py: + id: 3da1d7aa1c30 + last_write_checksum: sha1:9014603e9726499546c7e72ffb5450d13e4cf130 + pristine_git_object: 37262da4e8bcb8b2bdb23086516a2f684afe98dd + src/mistralai/client/models/get_projects_v1_observability_projects_getop.py: + id: 868801aa8d3b + last_write_checksum: sha1:578ede531efb98504667737458e7f8dbc065c7c7 + pristine_git_object: c66273abf9a3232c888c04cc174cf10783c06f93 src/mistralai/client/models/get_run_history_v1_workflows_runs_run_id_history_getop.py: id: 9d566ab77998 last_write_checksum: sha1:f4481dce1e0a5f3ec544c7e108d35acede7a4594 @@ -6399,6 +6951,10 @@ trackedFiles: id: 46d26398e77d last_write_checksum: sha1:8838ba799d562f20057258b3ecdb3191c85324cb pristine_git_object: 8186e1427a65dd664d989ad920a5c1d7f2c9c515 + ? src/mistralai/client/models/get_single_evaluation_run_statistics_v2_v1_observability_evaluation_runs_v2_run_id_statistics_getop.py + : id: 8a5669198669 + last_write_checksum: sha1:0c1d081dc6cf960c079a21008dae4588c8d94c34 + pristine_git_object: 004f1f798ee45c033aa1730ea672daec6d26e247 src/mistralai/client/models/get_span_by_id_v1_observability_traces_trace_id_spans_span_id_getop.py: id: 5827757f5577 last_write_checksum: sha1:70298e404ea26b1ed49840b49f56f2e002146a02 @@ -6477,8 +7033,8 @@ trackedFiles: pristine_git_object: ea7471a083fea3208bc84ba230694e877aadb07b src/mistralai/client/models/get_workflow_registrations_v1_workflows_registrations_getop.py: id: 822f256b2372 - last_write_checksum: sha1:5dd2f9c779e3446fb2bcbcda9cecdb591bcd5b39 - pristine_git_object: 0dc8679c948f56530c775048d5dfc8d9cb24e8cb + last_write_checksum: sha1:ecbcc6e9cb789d6835ee2df1075cee7daf55811c + pristine_git_object: 6f6ac67b2fb25aa42fdf34eae91a948e7430c7eb src/mistralai/client/models/get_workflow_v1_workflows_workflow_identifier_getop.py: id: 097af37374fd last_write_checksum: sha1:7f43eebd39b9c3358d9e09580954bcbb875021e0 @@ -6587,6 +7143,30 @@ trackedFiles: id: 8f50c772664e last_write_checksum: sha1:ff907e0db4c39b784e01f9c7fdc4e3ed36c3330d pristine_git_object: 4b1d075f76d12f3d9866d603a40c40903ead8bf5 + src/mistralai/client/models/goalresult.py: + id: 01eeda2dba33 + last_write_checksum: sha1:86e9778ed09aa603b1d41a0f6186208b23cd3522 + pristine_git_object: 315714a0a8ac6ff941639261ddce0665072147a1 + src/mistralai/client/models/goalresultitem.py: + id: fe3fc1dc87ff + last_write_checksum: sha1:1a6b3ceaf7b3af092598cfcda8a33aaae37d8d32 + pristine_git_object: d806a46c3729eb29cbf6357d88402e124c9dfdf2 + src/mistralai/client/models/goalspec.py: + id: 05f7aea69b56 + last_write_checksum: sha1:4f5572a3dcd698062fa65e45c0a1777e5762c54c + pristine_git_object: e97b06743a92e204e40b090b4cb94840224a8d75 + src/mistralai/client/models/goalstatus.py: + id: 2c534aaf6bc3 + last_write_checksum: sha1:5b16c62d5ee923b2b8059ad289948c2bfee9dada + pristine_git_object: 32122f5182c14669ed5662b0711841b38c14482f + src/mistralai/client/models/goalstatusfilter.py: + id: 7fbe16672924 + last_write_checksum: sha1:5ec01e8b87e8e4ce320b634bebb609b9f6ac77cd + pristine_git_object: ac8cb9d854a32186a1eb75e47373925e1c639067 + src/mistralai/client/models/goalstatusfiltergroup.py: + id: 6d3bf5c5ded6 + last_write_checksum: sha1:22c456a01191130293faf8616138ec8ce1d121e0 + pristine_git_object: 5d3c963b79685506bc7f039311002acc0479e591 src/mistralai/client/models/granularity.py: id: 5230c577800b last_write_checksum: sha1:55fc045ea124f84ddf0e9fbae9053b9d0ec6802a @@ -6609,8 +7189,8 @@ trackedFiles: pristine_git_object: 8f28a6fd4271b96c2feb28765aa19f86f8851bed src/mistralai/client/models/httpconnector.py: id: 29d326e2d741 - last_write_checksum: sha1:9409474677c1fafaac3bfad475a31703a7c08ab0 - pristine_git_object: e1e45762a56e16cfc73be001d7cfacbacd30aafb + last_write_checksum: sha1:bdd99a3387c80e3ab5f722dc3cb4204876145a03 + pristine_git_object: 4f723ad55515985cd1d1834f7f1a7777e14a027e src/mistralai/client/models/httpstatus.py: id: 56faca222b54 last_write_checksum: sha1:98a58c5644f17d0b4d312b42ee3a3468852194bb @@ -6655,10 +7235,6 @@ trackedFiles: id: 9453cb02452b last_write_checksum: sha1:939519298d8aa2fbb5b0a16360e2215c1d9d8ee6 pristine_git_object: 9311a951078bdb0a08d85da7dd2cec17b4c8c7bd - src/mistralai/client/models/inboundauthenticationtype.py: - id: 0c9f48e0518f - last_write_checksum: sha1:4ae224acea5ee3ce138f62414ec73a95c6b90a26 - pristine_git_object: bd7acb1c941e70c5afee95b132284ad4b81eb13e src/mistralai/client/models/ingest_documents_v1_rag_managed_indexes_index_name_documents_postop.py: id: db04eecaa568 last_write_checksum: sha1:725842dc76e12a305affd02eb6a6160e1871fdea @@ -6699,6 +7275,10 @@ trackedFiles: id: dac35ceb9af1 last_write_checksum: sha1:fe8436c451718ac0f8a87f47a10111c37ba4a372 pristine_git_object: 8f1d21b9411676ec90913a213a36b60b2ef66fbe + src/mistralai/client/models/ipaphoneme.py: + id: f0a0ede454b1 + last_write_checksum: sha1:ecc90ff1e32c815de5de98e79d08a8bb386def49 + pristine_git_object: 368037138538c4c453e716445861af3eeaa91a52 src/mistralai/client/models/jobs_api_routes_batch_cancel_batch_jobop.py: id: b56cb6c17c95 last_write_checksum: sha1:e5e2c422bb211bb4af3e8c1a4b48e491d0fdf5a4 @@ -6923,6 +7503,14 @@ trackedFiles: id: 1843a7aa68e5 last_write_checksum: sha1:264ab0fd7e051c57476db99a77ee7d7a83c2af2f pristine_git_object: ed3eb2fc16143e414c9bbb01b372faa642f9d086 + src/mistralai/client/models/list_optimization_trials_v1_observability_optimizations_optimization_id_trials_getop.py: + id: c885cd74007b + last_write_checksum: sha1:25c85b9d17a1787c242d738afa60451ee26badd5 + pristine_git_object: 18b37a5266d106e4ece227e9847d3f767625e758 + src/mistralai/client/models/list_optimizations_v1_observability_optimizations_getop.py: + id: 088a33214e9b + last_write_checksum: sha1:f616535f8b844d12a7e049d058b8600bd7e7740b + pristine_git_object: b6836f41d73e8aaf34aeb23a71089555b5a2251a src/mistralai/client/models/list_pipeline_configs_v1_observability_pipeline_configs_getop.py: id: 3c9d91b81d59 last_write_checksum: sha1:5c6520504a7b74ac4c3e02894d1e9b9a52719388 @@ -6971,6 +7559,14 @@ trackedFiles: id: f593d8e66833 last_write_checksum: sha1:bc59d07fe464777233f43af2ed780d3057fb3efd pristine_git_object: 35daaf7cd0d2ab1b2d7c5f62cac77d7680d98940 + src/mistralai/client/models/listevaluationrunrecordsresponse.py: + id: d575f52439e6 + last_write_checksum: sha1:5950465684da916d9cf897c80f9fbe635dcc35a5 + pristine_git_object: 1ae063712480f0fd1a6446abc0b88f3baf1d0c0b + src/mistralai/client/models/listevaluationrunsresponse.py: + id: 120669ad59e5 + last_write_checksum: sha1:fa754d9241c4c9a635a884a870327c20fba8d59b + pristine_git_object: 0fac9d53de0694b7f0a54178e5bc2c5aec1a9b99 src/mistralai/client/models/listfilesresponse.py: id: 85d6d24c1a19 last_write_checksum: sha1:d12114070cc5778fb3752d3a9a699ec86a8e9f69 @@ -6987,6 +7583,14 @@ trackedFiles: id: cb0ab4ccae1b last_write_checksum: sha1:d59af5e7710408fc2ea9dc2a217c235b3aa96145 pristine_git_object: a6fd23da2a96d7b4da0c6225e137438b305ba9d5 + src/mistralai/client/models/listoptimizationsresponse.py: + id: c06306bc2544 + last_write_checksum: sha1:0907b52b60d35edb60972970780051f48fe09c60 + pristine_git_object: 6d140e8920c571916e3c5afd42b58d466744e85a + src/mistralai/client/models/listoptimizationtrialsresponse.py: + id: d77349226682 + last_write_checksum: sha1:a61d21b2ccd53d4aac03db4b7b7622667a9203d1 + pristine_git_object: 8584696f0d82c13663df4b1fad27585a889909b5 src/mistralai/client/models/listorganizationsresponse.py: id: 521126214ce3 last_write_checksum: sha1:49d29e42654744c54e7dce1f9b44220ed9a6517e @@ -7077,8 +7681,8 @@ trackedFiles: pristine_git_object: 436cb5728ef0db88b169775d8fe7b05c6fed113c src/mistralai/client/models/mcpconnector.py: id: 94c7ad9e3ab2 - last_write_checksum: sha1:1c0bd7954278a50930a7d178598ae142383dcd21 - pristine_git_object: 455baad7c1b6e420a1b410dd7dc1fbd210c56eb8 + last_write_checksum: sha1:98e24fca247914f9360f206c664355913d14f8e7 + pristine_git_object: d8e2f646efd79c36512d69674c8e92a17427305c src/mistralai/client/models/mcpprompt.py: id: eac4133413b2 last_write_checksum: sha1:634a08d1f0a8c114b2d350917e8c1b1b645c4515 @@ -7163,6 +7767,14 @@ trackedFiles: id: e2a5171d27c5 last_write_checksum: sha1:af37f98ca55f6ba5373ed538e68f88e1e9f3e612 pristine_git_object: 7326311b6d45c56cbc6c2c513e27826a3e2b943e + src/mistralai/client/models/metadatafilter.py: + id: 119677f7c52c + last_write_checksum: sha1:1cefa7882d18ad41b6ff6887c16ba56932006ed0 + pristine_git_object: f9f28b3e36d529cab4c6b71e493ccf4d07e51eba + src/mistralai/client/models/metadatafiltergroup.py: + id: ad2c90383568 + last_write_checksum: sha1:c61f5b48397b5adeefff517d8a05d699d24c23ff + pristine_git_object: c3c775112172255c6ae2bca654b129b26d0cc8ec src/mistralai/client/models/metricaggregation.py: id: d83c8202faad last_write_checksum: sha1:f3c44e39baf3addaa26b9c1fe1abb40e18bbd4a8 @@ -7259,18 +7871,26 @@ trackedFiles: id: c9e6d1e068c5 last_write_checksum: sha1:af48594b10e3dab1fe9914d4f7a857b1dd422424 pristine_git_object: 3b02ecbdd141e42b2b5827a7deedbed57a0e8adc + src/mistralai/client/models/numericscoremetric.py: + id: 9c6bc3b1f8a7 + last_write_checksum: sha1:f64dfb5636256541b72ad1c493b432c850827e8c + pristine_git_object: 0d707efa8fd5869bae3150898d4217971603f2bd + src/mistralai/client/models/numericstatistics.py: + id: b3c9fcd63c49 + last_write_checksum: sha1:47856481dbbeffb32c134c2dbf1493b11223f30c + pristine_git_object: 6402838a941dc1c722e6f33b4e8d797b7fb289cb src/mistralai/client/models/oauth2authmethod.py: id: 32ceace54bd5 last_write_checksum: sha1:09b477161b9681b22581698a7b4a4a74e68e7a5f pristine_git_object: 72da2b89c8fd599bd082498bf7d1ee12c737c1e7 src/mistralai/client/models/oauth2authorizationcodeauthmethod.py: id: 087dcc1de885 - last_write_checksum: sha1:3dadf4cd1e1ad256add3837e1cf21ecde328962d - pristine_git_object: 9d21a9ceeafb4a070373e1df0aa31f0d67214437 + last_write_checksum: sha1:862dd52d422f1272a316987c94875b43d699a60c + pristine_git_object: 4b5f9795a1e6a86c8a001b229d22885829bd0e0a src/mistralai/client/models/oauth2clientcredentialsauthmethod.py: id: ea742dee6af8 - last_write_checksum: sha1:6bc10590dd772f49795c4e194c75f7e6456700ef - pristine_git_object: be97fa142b47ed57cf7b380cf7b88636c7079220 + last_write_checksum: sha1:ac0268c7e46ef87e351df61cb7fe4f453ea5d4c9 + pristine_git_object: 160452ee4e2ec55fdedd46023100ab08c37808df src/mistralai/client/models/oauth2clientcredentialsinput.py: id: ba98041a8764 last_write_checksum: sha1:fb23eeead94a47221e0f8eafe06d4cb3f6d2b74e @@ -7297,8 +7917,8 @@ trackedFiles: pristine_git_object: 91c2360d5d2c02e4391590a61ea4f6b0af5e24ec src/mistralai/client/models/observabilityerrorcode.py: id: ae572b470a30 - last_write_checksum: sha1:4469724162e33c72c4d058358ffb0d76754f9f6f - pristine_git_object: 14f1f52db5f166724ba27c24633998edc5501eab + last_write_checksum: sha1:a2152859dba9f1bf6b891312b59c37bccc135e21 + pristine_git_object: 8f3bf3e8f29dd23db264513760de6c8fd1d738b0 src/mistralai/client/models/observabilityerrordetail.py: id: cb6e8a484a38 last_write_checksum: sha1:f77796b6fbcb1e7e7a87dc25dd52cf1f9474510c @@ -7395,14 +8015,34 @@ trackedFiles: id: 272b7e1785d5 last_write_checksum: sha1:ac9b8a1745b5968cbb0e361b8f7e1fcababf9d91 pristine_git_object: 880923b2cb7e9d534944ca2c2394ee97b6f1a405 + src/mistralai/client/models/optimization.py: + id: 24f84b2bcffa + last_write_checksum: sha1:2e83971a8de07658c5cf351d6dbf407848c2f96b + pristine_git_object: ed4606e80e44cb97a96213281e90c698c4e6579b + src/mistralai/client/models/optimizationdetail.py: + id: ee8534db401d + last_write_checksum: sha1:0f61aa9467817ba2c989c7773bdb8f4a5ea35779 + pristine_git_object: 06f534b572fb823bfff9d71623f0331fe06f1ec7 + src/mistralai/client/models/optimizationreference.py: + id: aed4d71f5db8 + last_write_checksum: sha1:7e891e3bba88455b330c3cf308a3b92f871f6fc7 + pristine_git_object: c5b0e35e4a49517bb83035b00b44932fdb7465e7 + src/mistralai/client/models/optimizationtrialobservation.py: + id: dc08a3c62634 + last_write_checksum: sha1:8951dfa8fb631c499a32f5cc5856050b0e809f68 + pristine_git_object: 015da8e63f4b8ac2bfd38755454b393c156c6311 + src/mistralai/client/models/optimizationtrialwithobservations.py: + id: d3b9cb1b33fb + last_write_checksum: sha1:ffeee988e127e45355a8f55b59ac3fa662bea2d5 + pristine_git_object: 91060123d5894fd3ff6816a18bd22fcaa9351bd1 src/mistralai/client/models/or_.py: id: decc65f6bf3b last_write_checksum: sha1:e4f09c27612be1dbd3a3ee88cfe1fb04eb21d4e3 pristine_git_object: 98854a1316e9531209ee2c5dcdce829f7de18382 src/mistralai/client/models/orderbyclause.py: id: c7a6d0430f04 - last_write_checksum: sha1:cba275b0503375300f799eadbd8381f75dae06de - pristine_git_object: 3a1e3461c2fe7d9208ef480a23578b868611fca3 + last_write_checksum: sha1:d6c916cb0b27e46a9b591e6c1383305d5fd0b291 + pristine_git_object: 05a136e5fd0a028d902a12f321d40aedf77b053c src/mistralai/client/models/otelfielddefinition.py: id: 4bf75d7f4f70 last_write_checksum: sha1:828cdd9b59c6e9ee28b3554109c79ed7667c26ae @@ -7411,10 +8051,6 @@ trackedFiles: id: 4f2c54390e28 last_write_checksum: sha1:e00cf20c560a88e6a6fa07c95c2c28b30309ee56 pristine_git_object: d698537a22b00069b5d6988acb8b99dcafeb52c1 - src/mistralai/client/models/outboundauthenticationtype.py: - id: 705e7172ba40 - last_write_checksum: sha1:94fe65c455aa3e63576d6022d3c9560adea3f409 - pristine_git_object: 49a259dcaefa95358e845d54d8b594405224bc98 src/mistralai/client/models/outputcontentchunks.py: id: 9ad9741f4975 last_write_checksum: sha1:47d74d212ebcb68ff75a547b3221f2aee3e07bfe @@ -7435,10 +8071,34 @@ trackedFiles: id: 2556a91b48c4 last_write_checksum: sha1:8234ab123dc2188379a4df0b627314b0138c51b7 pristine_git_object: 4c736386cab954fb45fe48380cd38d9cc90b2f0a + src/mistralai/client/models/paginatedresultevaluationrunrecordv2response.py: + id: 1d29d3d857ae + last_write_checksum: sha1:4e4aa57795c716215a0e56ffa617f1c5604cc9e9 + pristine_git_object: 0c0bf53bfff4b24e334b7d83effd3d4c72d77989 + src/mistralai/client/models/paginatedresultevaluationrunv2response.py: + id: 840f561455b3 + last_write_checksum: sha1:9ccf824b48f729846a8444533c26d0ca38365ebf + pristine_git_object: 24f7368ef3df7a9054a7a9aafc542db8e9bb441b + src/mistralai/client/models/paginatedresultevaluationrunv2withrefsresponse.py: + id: 3c7b9fd883d0 + last_write_checksum: sha1:adfc92713984d68e98d054a5da8e256ac5d19533 + pristine_git_object: 67c996b3fe113db641ced6f33dffb93a007fffb7 + src/mistralai/client/models/paginatedresultevaluationv2.py: + id: 49418cea4b78 + last_write_checksum: sha1:40dab4cddade97c6dfe9cb9aeea1b39cf0a86ebc + pristine_git_object: c3376ca4226f14bdc3f0caeff251cf9bea8f739e src/mistralai/client/models/paginatedresultjudgepreview.py: id: 4d5aab2705a0 last_write_checksum: sha1:23937b3978b5533ff256d9367808d8f21d238b27 pristine_git_object: bb26784a510803c1f592aef750acebe8ffd2e7a6 + src/mistralai/client/models/paginatedresultoptimization.py: + id: d6fcf05287a5 + last_write_checksum: sha1:f8a2c5bf0f6b669342a30f84a74a73c9bd38b425 + pristine_git_object: 1c8b071f5db25d0a2205379295e269be8363d66d + src/mistralai/client/models/paginatedresultoptimizationtrialwithobservations.py: + id: b374365e0e44 + last_write_checksum: sha1:29eabc7a6fa037bc4c25e6d354f69904e330598e + pristine_git_object: 2680008c7acd8616a3774979210f4b85c35db6b6 src/mistralai/client/models/paginatedresultpipeline.py: id: 609f0478584c last_write_checksum: sha1:2346b9d55eaf319e2057de3b810e68a29962d19a @@ -7447,6 +8107,10 @@ trackedFiles: id: ffac23900246 last_write_checksum: sha1:05c58a144d1e2f88726084a74b40aca5cf28f6c6 pristine_git_object: dd8ce5f30d0a98d44d2dbfb596343a230e30684a + src/mistralai/client/models/paginatedresultproject.py: + id: 3b73025cf6a8 + last_write_checksum: sha1:6eedab7c096b9baab55d7fa4604803b7cd6d3b64 + pristine_git_object: 70971fda8f4acb5deee6a09ab613c57c052685eb src/mistralai/client/models/paginationinfo.py: id: 48851e82d67e last_write_checksum: sha1:b17cc84c592706882d5819b1a706c9a206de9198 @@ -7463,6 +8127,10 @@ trackedFiles: id: "53799174e259" last_write_checksum: sha1:7c294d3582a700a0e5c70f9ff4f3b30ebac4b7eb pristine_git_object: 48cf0e249627fc0130d71bfdf578ab1aa83c99a6 + src/mistralai/client/models/percentilestatisticspec.py: + id: 7c0013a3c320 + last_write_checksum: sha1:2dddd398eb66bc32bc1e8adbd74bdab72c51abf1 + pristine_git_object: 66976f919411b277fe77f82649be47df300786f9 src/mistralai/client/models/pipeline.py: id: 26f98f546224 last_write_checksum: sha1:f78c4ebb49e97273b441955b51da0f3dde5efa9f @@ -7501,20 +8169,20 @@ trackedFiles: pristine_git_object: 40ec3dc1275758c792690d876ab59aa8942d5fef ? src/mistralai/client/models/post_dataset_records_from_dataset_v1_observability_datasets_dataset_id_imports_from_dataset_postop.py : id: d396e018c804 - last_write_checksum: sha1:868aaeaf1f9784be2a7d43063892fa7021471f69 - pristine_git_object: e962f71226925b39efaf3664a4a69bc62d7ebf9b + last_write_checksum: sha1:cb3d6eaeda9e046864fe4df0e941dbdae4f5cd45 + pristine_git_object: 6e813227061fdb70ea46fb1a414fc9001c18235e src/mistralai/client/models/post_dataset_records_from_file_v1_observability_datasets_dataset_id_imports_from_file_postop.py: id: 6e93e5363630 - last_write_checksum: sha1:68009c89d99423f1e9e4a7b7e16b96aef5720fe2 - pristine_git_object: bce82dfbcd850a2a6dbed0be00fb57f8b30b1d03 + last_write_checksum: sha1:67b0b3dea78d58c52d20914ee34c821ea30d03f6 + pristine_git_object: 2fd956b4690620fea76f77f63f8b55863759a44b ? src/mistralai/client/models/post_dataset_records_from_playground_v1_observability_datasets_dataset_id_imports_from_playground_postop.py : id: 09334d96c26d - last_write_checksum: sha1:afbcee5538ce1dadf10e889292a516fd19d46808 - pristine_git_object: 44961ec8bfaa17825c7e788169a69f691884640a + last_write_checksum: sha1:d86d0bac82d2453d58fabb20360afcd2858bd447 + pristine_git_object: 0a58bbbf9597aea8f90aae3610c2109961ff997d src/mistralai/client/models/post_dataset_records_from_spans_v1_observability_datasets_dataset_id_imports_from_spans_postop.py: id: a362a57a5e98 - last_write_checksum: sha1:82b0d6abd8aef905e5f8d0ee52551bc62ea5576a - pristine_git_object: d95c6c30b91f7c349110942b180b0cb57afce9ac + last_write_checksum: sha1:8daa54c7ccb11aee03617376828c3303ba3a5642 + pristine_git_object: 0cee78842dbf0c732c44d8ff3162213de56f10cd src/mistralai/client/models/prediction.py: id: 1cc842a069a5 last_write_checksum: sha1:f58dedd4b3c69b35365de21aa2626b92a34ca2d2 @@ -7531,6 +8199,18 @@ trackedFiles: id: "0205512146e6" last_write_checksum: sha1:dbba64a2021ada83d3718888ce5a11432d22903a pristine_git_object: b54291a16ebae271d6ff9ea2717559fff80bd17c + src/mistralai/client/models/project.py: + id: 01157344173f + last_write_checksum: sha1:9b8f5281d91e224265d033d1f6d3e1c9c26f5d93 + pristine_git_object: 77f370d83bc1742f47dfcd669fdde1582bce7cfd + src/mistralai/client/models/projectevaluationsummary.py: + id: 03cac20474bd + last_write_checksum: sha1:eb7af79eba66162a03ec721d662d3d5f8361f633 + pristine_git_object: 0a991bebb0d3c9ab04f27144c9fba631792f86b3 + src/mistralai/client/models/projects.py: + id: b7c57ddf6949 + last_write_checksum: sha1:4e0e9c7c027f36e7fbb1cc642646d0d15be34322 + pristine_git_object: e01ca397f8a339d5f5e131d5574f8dc81c5d4173 src/mistralai/client/models/prompt.py: id: 488f0cfc226c last_write_checksum: sha1:594ea04b05e594a36a109329f50fcd7bbfc9b72b @@ -7593,8 +8273,8 @@ trackedFiles: pristine_git_object: 351b143bdb518dd4f7d69135bd72757b71a321ff src/mistralai/client/models/publicauthenticationmethod.py: id: 545ab7f24523 - last_write_checksum: sha1:832e5f4783e03ea705a64950b3983542733906e1 - pristine_git_object: 6fbde91f8d36b24d0302077034e3e7d0a0af49bc + last_write_checksum: sha1:5de565004bc9d039464c84363df6213777c329be + pristine_git_object: 18b2b7914447a746927c9ff67602698847dffe1d src/mistralai/client/models/publicconnectionconfig.py: id: 03c2460e04ac last_write_checksum: sha1:de0ddac33afacdafb16d80d69c686552fc79464d @@ -7691,6 +8371,10 @@ trackedFiles: id: b930a0a20654 last_write_checksum: sha1:178bfa8d2cd0d61c4da50794a0832c5d9bd3308d pristine_git_object: bb1060c8f1d2fb789638d58d36933d668f09de77 + src/mistralai/client/models/recordsortfield.py: + id: 929ca51c94e0 + last_write_checksum: sha1:b1458805e94869d469c5538848e439adeb6be967 + pristine_git_object: 259603ff38072d5018b1c5fb15eaa2666c951e5f src/mistralai/client/models/referencechunk.py: id: 921acd3a224a last_write_checksum: sha1:4945a0fe2e85bb8004f4e9fb7c265d5958ec538f @@ -7739,10 +8423,18 @@ trackedFiles: id: 3c0a985a5a77 last_write_checksum: sha1:c0cda70b115d6bda2da0c586ebc68cffab33b34e pristine_git_object: 9f23bf23463cf873832bf524db6704b75ae9284e + src/mistralai/client/models/resourcechunk.py: + id: e0214607aee1 + last_write_checksum: sha1:fcbbf1f0aa5cfa75ee01abcad425489b66c22ec9 + pristine_git_object: 0090adfa0411a8bce2771138308bdff2c72142e2 src/mistralai/client/models/resourcelink.py: id: 4251cc3c7797 last_write_checksum: sha1:88bdf1c9e06f29a4c24e96f62c94fcd6a504b0ca pristine_git_object: b20ad61496abd6efb2cfbdf8b438f56422f776eb + src/mistralai/client/models/resourcelinkchunk.py: + id: 1a0594218456 + last_write_checksum: sha1:50f3a5bb1ed2e021b57650ac84d5f00137e58a18 + pristine_git_object: 6cf77b4915b332696cc9cc1a9bc35e87cb8e9e4e src/mistralai/client/models/resourcescapability.py: id: d109cd5fe17d last_write_checksum: sha1:e9335c42a3f25d2b5bfdd034972e6cca9b3d8753 @@ -7795,6 +8487,26 @@ trackedFiles: id: 78dc5d3684c2 last_write_checksum: sha1:a82124e6c0145454b3c85bfa063e0e74604a2a8b pristine_git_object: 5b02081c009b0030cf171aaf3a51b54a22bccda3 + src/mistralai/client/models/runevaluationsummary.py: + id: f2d259016214 + last_write_checksum: sha1:096df567638af82b689f9083f16f4720f24f2747 + pristine_git_object: 32f293dc79005840e2218d81d947552d30a8a411 + src/mistralai/client/models/runoptimizationref.py: + id: 50f8981053e5 + last_write_checksum: sha1:f3c88016f18e3f487aa8d367b211b8fba0a31c43 + pristine_git_object: 948f87c55143b82be2e7e23832f3a1c68a53b2d9 + src/mistralai/client/models/runownershipfilter.py: + id: 51fd0ba32fd3 + last_write_checksum: sha1:9ae77147c2070010d2e6b6394cf7d9822f5656f4 + pristine_git_object: a607ff4dcc26357725536267fbbac2d95dc7c62d + src/mistralai/client/models/runprojectsummary.py: + id: af9516ce006b + last_write_checksum: sha1:7941151a05698f2909112c28730d6c0f128958b7 + pristine_git_object: 1e484971238f234ed3a5a683dba76e0f4792430b + src/mistralai/client/models/runstatisticsresponse.py: + id: 2cdbf1075e47 + last_write_checksum: sha1:2bfd05f05a31609840355f521a56c08620b5fd9a + pristine_git_object: 5e314cd86b726473549dd2ddbb2bac976f087f6b src/mistralai/client/models/sampletype.py: id: a9309422fed7 last_write_checksum: sha1:1eb21a68c138e9a0d39b4dd14bcffc9e3ff0784f @@ -7807,6 +8519,10 @@ trackedFiles: id: ae8eb1017da6 last_write_checksum: sha1:2618c47619823b2f2360aff36e56ad852629b497 pristine_git_object: 9a2b385bdaffc1830f9a053848a16cbf14a9dccc + src/mistralai/client/models/scalarstatisticvalue.py: + id: 53d8fc5c9129 + last_write_checksum: sha1:1fcbf8473929556c5d38682264829d90568d46a6 + pristine_git_object: e746f852b7aa5bd58a755627756a62d54ec7c995 src/mistralai/client/models/schedulecalendar.py: id: 76d72d187023 last_write_checksum: sha1:c4da6e5d8b2318924d43385e1adb4a718c58aee1 @@ -7859,6 +8575,34 @@ trackedFiles: id: 6ec367e3cfe5 last_write_checksum: sha1:ff5b04afcc4edaaa8baed301600002515e62b7f2 pristine_git_object: 06d02c5b377e97a2e5fd19499ca68836afeb5a49 + src/mistralai/client/models/scorefilter.py: + id: 37e8ba001c45 + last_write_checksum: sha1:a5d6994743002321030f0a4e54a241377e3ced15 + pristine_git_object: af9c8bd4f86511e5537ea9efa82a2a540a8c8877 + src/mistralai/client/models/scorefiltergroup.py: + id: d9df4d33e34c + last_write_checksum: sha1:293f351349faef7581915bc336c5158fde029d10 + pristine_git_object: 7be9378b9b90123d8614ec96239af513a5819641 + src/mistralai/client/models/scoreoperator.py: + id: d68a3f194e69 + last_write_checksum: sha1:17543366784da1342107db0cd6fecc404c6a1f2f + pristine_git_object: 364e25310bf114a4e7dc8f9e9efcc8f13ca05fe7 + src/mistralai/client/models/scoresortinput.py: + id: f90a7449fc25 + last_write_checksum: sha1:486e12708fca3343ce6f42b77da1675dd1d370fc + pristine_git_object: 6ae0db024e62b51a9501025056d6b484f3e516ae + src/mistralai/client/models/search_all_evaluation_runs_v2_v1_observability_evaluation_runs_v2_search_postop.py: + id: 44898d87d03f + last_write_checksum: sha1:f7401634668d9b91561832c59e7a94f8232f5627 + pristine_git_object: 00e3076b3e2f5eae6a27277c27994c805b5f7f69 + src/mistralai/client/models/search_evaluation_run_records_v2_v1_observability_evaluation_runs_v2_run_id_records_search_postop.py: + id: 61f014da169c + last_write_checksum: sha1:e08cab13896d5561d242f743ede4f51f83db4ecf + pristine_git_object: 36b0cd9685fe42fb181747143d7bb50b867a8c17 + src/mistralai/client/models/search_evaluation_runs_v2_v1_observability_evaluations_v2_evaluation_slug_runs_search_postop.py: + id: 38c804e70f8a + last_write_checksum: sha1:cc42112c8462fe31f6e6851b040e31f6e6485e14 + pristine_git_object: 6ce14644b4eb01015cd24885a9c0484f76f2068a src/mistralai/client/models/search_index_v1_rag_managed_indexes_index_name_search_postop.py: id: b1be3d65993f last_write_checksum: sha1:cd60d004ccd2d5feb4608a55ac661d487f4f6ee2 @@ -7883,6 +8627,10 @@ trackedFiles: id: b7758d63781e last_write_checksum: sha1:f6bed5f54c48fb7c5ae6820c50b52467973e80c9 pristine_git_object: d91b4ad5b2ded2c572ff430909f11dd023d5dfb0 + src/mistralai/client/models/searchallevaluationrunsresponse.py: + id: 5d3f50538738 + last_write_checksum: sha1:a05d85b1c9ab96fb120dd05d7bf6841e329c3bd1 + pristine_git_object: 06d84278c3e0780beeb6ef3c3db590e7c4ada8d5 src/mistralai/client/models/searchchunkresponse.py: id: 29a1501856ee last_write_checksum: sha1:0717e55cfa2530fd68d37dac9fe1e713372f5c1a @@ -7971,6 +8719,10 @@ trackedFiles: id: e1844a7da20b last_write_checksum: sha1:0ded81167e664ee40631209ff7c2fe4502d574dc pristine_git_object: 5deecdf3aecc24574e2a090bd7cc5e86ebde8056 + src/mistralai/client/models/simplenumericstatisticspec.py: + id: 64ec4084d6d1 + last_write_checksum: sha1:cc52ed7fe3755c79c84db8e8d5c704d6404d97de + pristine_git_object: f1e98be4765545463ef4ec942cf8ea1fcbd71fca src/mistralai/client/models/skill.py: id: 3f0496dc5b60 last_write_checksum: sha1:af0e4ea7c652e5e9539df721bcec838895182237 @@ -8019,6 +8771,10 @@ trackedFiles: id: 5b123200157e last_write_checksum: sha1:624a9971cb59617ea0aa52d1188f942307d410d0 pristine_git_object: 916d405ceec77ba230fe62d601efb0a0837166fa + src/mistralai/client/models/sortdirection.py: + id: 4f726c1dda56 + last_write_checksum: sha1:592d968de54ea54654c69ef2ddd34772ae55af48 + pristine_git_object: ba63db25d8783d51c9d426d6b9a5c4e90f93ed47 src/mistralai/client/models/sortorder.py: id: 10b144299c2f last_write_checksum: sha1:d969325ce7bc3934368a939286d01e8a218dec1f @@ -8065,8 +8821,8 @@ trackedFiles: pristine_git_object: 1a252290a5757247129200e84454579169133c1c src/mistralai/client/models/speechrequest.py: id: cf3bc148e629 - last_write_checksum: sha1:679614862b0237278bfde90aaff7974203f87bc7 - pristine_git_object: a13bc10e73153c5b63f716f4660e8f4fedb36da0 + last_write_checksum: sha1:06a9f207848d052b6d2e82f010eae2f446d6f98d + pristine_git_object: dc5fa0bdc32c60c89199c07ea98afe2d13bfc4c6 src/mistralai/client/models/speechstreamaudiodelta.py: id: ac66815396b1 last_write_checksum: sha1:16e1f34aac6092153552534f949c77ffb8efb198 @@ -8115,6 +8871,10 @@ trackedFiles: id: 14c00c79de78 last_write_checksum: sha1:588aafd6943c86ae54694d606963fd4c254525c6 pristine_git_object: d3e3a3e1234657a04e515cad737b5c1c6761be9a + src/mistralai/client/models/systemfilter.py: + id: 02a369144fb6 + last_write_checksum: sha1:4b2a81a67042cce1de0419980660d2ab686b24dc + pristine_git_object: 46db2ba311d09d2bc01658b84c3fb4c2bfc049e0 src/mistralai/client/models/systemmessage.py: id: 500ef6e85ba1 last_write_checksum: sha1:ba231c2bd65d68209a2562e071c52e29a6eb82ca @@ -8123,6 +8883,34 @@ trackedFiles: id: 297e8905d5af last_write_checksum: sha1:4581a28c592708bf51dbc75b28fe9f7bddde3c70 pristine_git_object: 7a79737964b79e39b760ef833cce24e411f5aa90 + src/mistralai/client/models/systemnamefilter.py: + id: cc5f0e099fe6 + last_write_checksum: sha1:1c65ddb8b89a13a4b34fd4389e758fa33b6f12c1 + pristine_git_object: 28c82ca3dc1ea97a3f2bf84c6cb340d32fe9af00 + src/mistralai/client/models/systemnamefiltergroup.py: + id: 8fb0e751f85f + last_write_checksum: sha1:6c4e39569da43dd7f84df9bafd04cfef77d88665 + pristine_git_object: 17e22db225f2e8e127b945a621189f621423a961 + src/mistralai/client/models/systemparamfilter.py: + id: 73f75e3431ba + last_write_checksum: sha1:197586dcf8420fc348f779a5b0ad6d180861182a + pristine_git_object: 53262b6c083f1e0deb189b82cd7cbf617355d8f8 + src/mistralai/client/models/systemparamfiltergroup.py: + id: ffc174baf891 + last_write_checksum: sha1:69a79559642aa943ab497de79372fb664fd8efc2 + pristine_git_object: c0a94bfaba8e60f801edd4dbb3bf76e943125b05 + src/mistralai/client/models/systemparamoperator.py: + id: 8460d7606e69 + last_write_checksum: sha1:6e956624cffeb46c17e7604b08910c8187690d89 + pristine_git_object: 1a70cc755533db5681a2be0fe8cbe61a6c237876 + src/mistralai/client/models/systemv2.py: + id: a2db8246ae38 + last_write_checksum: sha1:3e42a70a2a80376aa80767505a1ebc2116a2d67a + pristine_git_object: 651a6562d09f288b2bd980838219aa36f6dc622f + src/mistralai/client/models/tagfilter.py: + id: e9afa8027749 + last_write_checksum: sha1:1ab5ac8666d0f9251eb9dffd24a9df707754f064 + pristine_git_object: ecb677df2255c092e7f65983d95bc8b882b371c1 src/mistralai/client/models/taskselicitationcapability.py: id: 19504f19f5f3 last_write_checksum: sha1:749f65fdc86b284ae3498c43066cd0eea7eabdd6 @@ -8403,6 +9191,10 @@ trackedFiles: id: 114f67717003 last_write_checksum: sha1:6b6ed1621d228d94cad32d2ac27f093c4489747a pristine_git_object: fa472adf7259565dee725572e0945a7e4cee3eef + src/mistralai/client/models/unsupportedstatistics.py: + id: 7f97f996efd9 + last_write_checksum: sha1:417d81e70fab7625955d6d383bb891d99c3f10c8 + pristine_git_object: cd35673e0f6f4cba86ba3a34fddb7f37877fd18a src/mistralai/client/models/update_dataset_record_payload_v1_observability_dataset_records_dataset_record_id_payload_putop.py: id: fa5d55a9d6cf last_write_checksum: sha1:a583bfe2a5445c2b3d88c07dfbfdd9001ac5ed27 @@ -8413,8 +9205,8 @@ trackedFiles: pristine_git_object: b573790d538c71b456265fecadfeeddad9fd8fbc src/mistralai/client/models/update_dataset_v1_observability_datasets_dataset_id_patchop.py: id: 7bb459765cba - last_write_checksum: sha1:7db7a2b917fcef1ba8d1a4b0b30aab045c042759 - pristine_git_object: c0e5a3d40062ee9615f3438bf0e007c370174fd2 + last_write_checksum: sha1:45a724d1e66dd78d52d7eebf4f6df1d683ad247c + pristine_git_object: 19adceb20dcc3999876cef10231d140ed8f920ea src/mistralai/client/models/update_deployment_v1_workflows_deployments_name_patchop.py: id: 10af4960601c last_write_checksum: sha1:48d4a857bbe3181bed481e00b904f43a923fb268 @@ -8533,8 +9325,8 @@ trackedFiles: pristine_git_object: 5fc62fa33c495064084d02ec00ec61d221368ac4 src/mistralai/client/models/updatepipelinerequest.py: id: e47da38e2c2c - last_write_checksum: sha1:09759c76ffd138a7e3ce6777436d2d39e808a6f6 - pristine_git_object: b7ee4bddf38d1165280900dac1f42d5c2dc98c24 + last_write_checksum: sha1:f17236ad9e82d73c578e49b52bac53bffe94e123 + pristine_git_object: 7edf03d531fa088a9ca162bb183877abe647cb07 src/mistralai/client/models/updateruninfo.py: id: 4330bdaa00b9 last_write_checksum: sha1:be38b9f04bcd120298ea9f54f69f915528951368 @@ -8611,6 +9403,10 @@ trackedFiles: id: bd01f8fe635e last_write_checksum: sha1:0f128cf6a50f32adb311bfcdab78be1c5a3919d6 pristine_git_object: 2a78480e73c602e2bf008cc57d58553ac18018e6 + src/mistralai/client/models/voicekind.py: + id: 55379359714d + last_write_checksum: sha1:8fe9f3abc8fecc97e9ba85915b2da7be9a75567d + pristine_git_object: c1290073da0bde099922964b17004f2e7ab1b73c src/mistralai/client/models/voicelistpage.py: id: b6ca7542d9b4 last_write_checksum: sha1:69f2173378ba01d2c4c2d3e72c99b542c85662e0 @@ -8621,8 +9417,8 @@ trackedFiles: pristine_git_object: 2ccbccf9c029daa5c403690e1408cdd6f5f72007 src/mistralai/client/models/voiceresponse.py: id: 24138e419fae - last_write_checksum: sha1:d7aa37d1874b356361af1ea7be3e66475e6c9443 - pristine_git_object: 06444cc9879468ef66d4e5c2b2921de4017c723c + last_write_checksum: sha1:8b72c8770a642715fd7297438a6768e12d4fef00 + pristine_git_object: a31dba1763d6b5f58ae3e7c964930bbe6f664bf7 src/mistralai/client/models/voiceupdaterequest.py: id: 798f8ff225de last_write_checksum: sha1:33d4d4289ad382b642ac18ddf85867ad94c239ad @@ -8879,6 +9675,10 @@ trackedFiles: id: 2f804a12fc62 last_write_checksum: sha1:5f5e9d9fc99b7b8154149e4e0d938facd442b33a pristine_git_object: c9f6d7f76cffd1c9a3b4e1f167ed05791b78f13e + src/mistralai/client/optimizations.py: + id: 6edb343da734 + last_write_checksum: sha1:36af46e79635bfc04b18fd8606e094c55c9c8bfa + pristine_git_object: 8c913738846d804fa14d49b0dbe8d1ffc512e999 src/mistralai/client/py.typed: id: d95cd1565e33 last_write_checksum: sha1:8efc425ffe830805ffcc0f3055871bdcdc542c60 @@ -8891,14 +9691,6 @@ trackedFiles: id: 9d55a65b4bc9 last_write_checksum: sha1:93ccfb66a4ab357f88e6b01a8f3517eb566d7f13 pristine_git_object: 519d5d5ba7dbb39be2e68acc9891b0d36dee5fd0 - src/mistralai/client/records.py: - id: 10f90c990bd8 - last_write_checksum: sha1:097b209f72555cccd4f362c6765626c169d7f782 - pristine_git_object: aad772f6440eed1c520a53276d0936848e5c6a76 - src/mistralai/client/runs.py: - id: 4297d58aeb21 - last_write_checksum: sha1:380c88fe68b5c7259a3acfbd4cc590e39ea701af - pristine_git_object: c65d5d7c6200a88b6072f4172a5f6a5ae5b3b3d8 src/mistralai/client/schedules.py: id: d3b4fe452390 last_write_checksum: sha1:51fa9f8828bfb1e06bf72a0fc403b9ee9e226be8 @@ -8933,8 +9725,8 @@ trackedFiles: pristine_git_object: 59cead7d80d71ebfabd9715b398556fa89249569 src/mistralai/client/speech.py: id: 5c1f1109aa5e - last_write_checksum: sha1:aeed141c97c6b58cb5f6a1408e81fc5cb05b60fc - pristine_git_object: d8b678ffa7674ce57f9313ae92a27c74137f1a10 + last_write_checksum: sha1:097028ff496a8637bed34bc09e36338711257e84 + pristine_git_object: 83e2dca96030918ba358e6a71abbea777d1d38c8 src/mistralai/client/traces.py: id: 8af61cbcf718 last_write_checksum: sha1:1ab83d6cc92ad235c6b791e40ec919c710cfc981 @@ -9041,12 +9833,16 @@ trackedFiles: pristine_git_object: 3e526c3072b65dd1c502d5602aad555b751c7c11 src/mistralai/client/workflows.py: id: e2a0381191f6 - last_write_checksum: sha1:88dbc75143b0a5624d23f0fff42c2d569e1e34e5 - pristine_git_object: 642f59509a2cfad64d0c781ea2a68ea72a5c5f39 + last_write_checksum: sha1:d81b7d2fe6863cbc3665cc1748056c0f7f488f75 + pristine_git_object: 6e2b94dc7990d7be476be90ed655a01d70ce95d8 src/mistralai/client/workflows_events.py: id: 6d4f674ce8ef last_write_checksum: sha1:132dcc7cb1c790a1d61c4cd4a38c6c1fa7bd5ac0 pristine_git_object: 91e6cad8b4a1e05b4f36b8b7185dba30ac327973 + src/mistralai/client/workflows_runs.py: + id: 5b38dcb8c62f + last_write_checksum: sha1:59ac748f4edbeefec9d5f7f1ca04ba49ecc3ecb6 + pristine_git_object: 4879695469eadc296928a5add6ffdaaed6f87a39 examples: list_models_v1_models_get: speakeasy-default-list-models-v1-models-get: @@ -10675,7 +11471,7 @@ examples: application/json: {"name": "", "description": "citizen whoever sustenance necessary vibrant openly"} responses: "201": - application/json: {"id": "e86e57b5-7c22-4325-bd9a-1aa080190810", "created_at": "2026-02-21T13:59:16.796Z", "updated_at": "2026-05-02T06:33:42.170Z", "deleted_at": "2024-10-04T09:38:22.311Z", "name": "", "description": "faraway stained despite obtrude er whereas rough", "owner_id": "c9748a93-c271-44dd-8be4-eae95777dcf1", "workspace_id": "1c770558-393b-49ef-a65e-6953eebd09fe"} + application/json: {"id": "e86e57b5-7c22-4325-bd9a-1aa080190810", "created_at": "2026-02-21T13:59:16.796Z", "updated_at": "2026-05-02T06:33:42.170Z", "deleted_at": "2024-10-04T09:38:22.311Z", "name": "", "slug": "", "description": "faraway stained despite obtrude er whereas rough", "owner_id": "c9748a93-c271-44dd-8be4-eae95777dcf1", "workspace_id": "1c770558-393b-49ef-a65e-6953eebd09fe"} "400": application/json: {"detail": {"message": "", "error_code": "AGENT_MISTRAL_API_ERROR"}} get_datasets_v1_observability_datasets_get: @@ -10696,7 +11492,7 @@ examples: dataset_id: "036fa362-e080-4fa5-beff-a334a70efb58" responses: "200": - application/json: {"id": "a4355b62-5f75-44af-86e3-398b02d79718", "created_at": "2024-09-22T05:11:33.455Z", "updated_at": "2024-08-05T11:16:32.114Z", "deleted_at": "2024-11-17T02:39:46.669Z", "name": "", "description": "brr dearly under pish brr however careless ferret", "owner_id": "3500df1e-5139-4573-90c4-c40cc1553997", "workspace_id": "98f44a49-7d9c-44e0-819c-b87b8b697b40"} + application/json: {"id": "a4355b62-5f75-44af-86e3-398b02d79718", "created_at": "2024-09-22T05:11:33.455Z", "updated_at": "2024-08-05T11:16:32.114Z", "deleted_at": "2024-11-17T02:39:46.669Z", "name": "", "slug": "", "description": "brr dearly under pish brr however careless ferret", "owner_id": "3500df1e-5139-4573-90c4-c40cc1553997", "workspace_id": "98f44a49-7d9c-44e0-819c-b87b8b697b40"} "400": application/json: {"detail": {"message": "", "error_code": "TEMPLATE_SYNTAX_ERROR"}} delete_dataset_v1_observability_datasets__dataset_id__delete: @@ -10716,7 +11512,7 @@ examples: application/json: {} responses: "200": - application/json: {"id": "321a1909-2e5b-44a4-9344-3f6730da59f3", "created_at": "2024-02-08T01:14:12.266Z", "updated_at": "2026-01-30T21:57:19.199Z", "deleted_at": "2024-09-01T12:04:00.540Z", "name": "", "description": "hm vivaciously grandiose ditch", "owner_id": "dd537278-359d-4d34-aa69-9fbf9968649e", "workspace_id": "4f07d08f-2c7c-489c-abf9-f4f9c6d4d1b5"} + application/json: {"id": "321a1909-2e5b-44a4-9344-3f6730da59f3", "created_at": "2024-02-08T01:14:12.266Z", "updated_at": "2026-01-30T21:57:19.199Z", "deleted_at": "2024-09-01T12:04:00.540Z", "name": "", "slug": "", "description": "hm vivaciously grandiose ditch", "owner_id": "dd537278-359d-4d34-aa69-9fbf9968649e", "workspace_id": "4f07d08f-2c7c-489c-abf9-f4f9c6d4d1b5"} "400": application/json: {"detail": {"message": "", "error_code": "FEATURE_NOT_SUPPORTED"}} get_dataset_records_v1_observability_datasets__dataset_id__records_get: @@ -12947,7 +13743,7 @@ examples: path: pipeline_id: "2c18966b-8d2d-41fb-a02c-9a9bf9df2919" requestBody: - application/json: {"name": "", "selectors": [{"source_kind": "log"}], "definitions": [], "enabled": true} + application/json: {} responses: "200": application/json: {"id": "8158c835-0f52-4f37-81ea-34dcabc427fe", "created_at": "2025-03-27T06:42:02.980Z", "updated_at": "2026-04-25T11:18:51.427Z", "workspace_id": "1bb4db83-ca1e-4ec8-8ce1-35b7a0e3b73d", "name": "", "slug": "", "description": "oof once appliance fooey vibraphone teammate whereas kindly barring whoever", "selectors": [], "enabled": true, "creator_id": "150d7d2a-3944-4f56-a00d-31456b7572da", "pipeline_configs": [{"id": "53ddc603-0af9-4653-8fd8-748a718f6e3d", "created_at": "2026-09-14T08:30:49.632Z", "updated_at": "2025-07-12T10:22:59.203Z", "deleted_at": "2024-07-28T00:55:20.161Z", "scope": "workspace", "workspace_id": "65e6d72f-08c9-4a95-a9f1-85fa6c4202d7", "name": "", "pipeline_kind": "export", "selectors": [], "enabled": true, "definition": {"model": "mistral-moderation-latest"}}]} @@ -13045,9 +13841,165 @@ examples: parameters: path: deployment_id: "f88c4734-ec6d-4ded-bc49-47a41d4be24b" + get_project_evaluations_v2_v1_observability_projects__project_slug__evaluations_v2_get: + speakeasy-default-get-project-evaluations-v2-v1-observability-projects-project-slug-evaluations-v2-get: + parameters: + path: + project_slug: "" + query: + page_size: 50 + page: 1 + responses: + "200": + application/json: {"evaluations": {"count": 962074}} + "400": + application/json: {"detail": {"message": "", "error_code": "JUDGE_CONVERSATION_FORMAT_ERROR"}} + get_evaluation_v2_v1_observability_evaluations_v2__evaluation_slug__get: + speakeasy-default-get-evaluation-v2-v1-observability-evaluations-v2-evaluation-slug-get: + parameters: + path: + evaluation_slug: "" + responses: + "200": + application/json: {"id": "b04136c2-1c11-4117-92ab-4db1e036f599", "created_at": "2026-07-22T08:34:33.304Z", "updated_at": "2026-10-24T02:25:55.652Z", "deleted_at": "2025-07-12T18:46:28.131Z", "workspace_id": "895f3fb9-b930-480a-a0fb-b6ac05767618", "creator_id": "29244817-57eb-4ca7-8ef8-6617435ee0cf", "project_id": "47d47350-c846-4443-b237-a03bad70e478", "name": "", "slug": "", "description": "boo irk afraid tectonics weary", "tags": [], "metadata_": {"key": "", "key1": ""}, "is_favorite": false} + "400": + application/json: {"detail": {"message": "", "error_code": null}} + get_projects_v1_observability_projects_get: + speakeasy-default-get-projects-v1-observability-projects-get: + parameters: + query: + page_size: 50 + page: 1 + responses: + "200": + application/json: {"projects": {"count": 562378}} + "400": + application/json: {"detail": {"message": "", "error_code": null}} + get_project_v1_observability_projects__project_slug__get: + speakeasy-default-get-project-v1-observability-projects-project-slug-get: + parameters: + path: + project_slug: "" + responses: + "200": + application/json: {"id": "269f6ce0-cacc-4b26-be44-fcf7d02e82ad", "created_at": "2026-08-31T09:02:19.915Z", "updated_at": "2024-10-18T23:03:51.916Z", "deleted_at": "2024-11-11T22:29:23.354Z", "workspace_id": "4a3be83a-1b5f-4eba-8c1a-106a77d8a93e", "creator_id": "ac33b56e-38e7-4e01-b5f8-59b536b1cc17", "name": "", "slug": "", "description": "and yowza round excepting underneath punctuation phooey", "is_favorite": false} + "400": + application/json: {"detail": {"message": "", "error_code": "DATABASE_ERROR"}} + search_evaluation_runs_v2_v1_observability_evaluations_v2__evaluation_slug__runs_search_post: + speakeasy-default-search-evaluation-runs-v2-v1-observability-evaluations-v2-evaluation-slug-runs-search-post: + parameters: + path: + evaluation_slug: "" + query: + page_size: 50 + page: 1 + responses: + "200": + application/json: {"runs": {"count": 184085}} + "400": + application/json: {"detail": {"message": "", "error_code": "AUTH_FORBIDDEN"}} + search_all_evaluation_runs_v2_v1_observability_evaluation_runs_v2_search_post: + speakeasy-default-search-all-evaluation-runs-v2-v1-observability-evaluation-runs-v2-search-post: + parameters: + query: + page_size: 50 + page: 1 + responses: + "200": + application/json: {"runs": {"count": 58257}} + "400": + application/json: {"detail": {"message": "", "error_code": "DATASET_TASK_NOT_FOUND"}} + get_evaluation_run_v2_v1_observability_evaluation_runs_v2__run_id__get: + speakeasy-default-get-evaluation-run-v2-v1-observability-evaluation-runs-v2-run-id-get: + parameters: + path: + run_id: "c120b634-146a-4ae3-bd38-b7a168c4c8ce" + responses: + "200": + application/json: {"id": "9c29a189-0ac0-4187-ae2e-90ca56fa51a0", "created_at": "2025-02-13T00:22:12.713Z", "updated_at": "2026-10-08T19:08:42.554Z", "deleted_at": null, "creator_id": "ff457408-e7e9-438c-bc97-b6479ae9ae7f", "evaluation_id": "ac537a40-de7e-4a42-a131-2a4c20e80a7a", "name": "", "description": "and legislature traffic gnaw psst indeed after ew only", "tags": [], "metadata_": {"key": ""}, "num_generations": 742030, "status": "completed", "evaluators": []} + "400": + application/json: {"detail": {"message": "", "error_code": "SCORER_CONFIG_KIND_MISMATCH"}} + get_single_evaluation_run_statistics_v2_v1_observability_evaluation_runs_v2__run_id__statistics_get: + speakeasy-default-get-single-evaluation-run-statistics-v2-v1-observability-evaluation-runs-v2-run-id-statistics-get: + parameters: + path: + run_id: "a38473a2-532a-4cb8-9320-a7f617d16595" + responses: + "200": + application/json: {"run_id": "10231899-3dfc-454f-9557-c69ce095fb86", "statistics": {}} + "400": + application/json: {"detail": {"message": "", "error_code": "VALIDATION_ERROR"}} + compute_filtered_run_statistics_v2_v1_observability_evaluation_runs_v2__run_id__statistics_compute_post: + speakeasy-default-compute-filtered-run-statistics-v2-v1-observability-evaluation-runs-v2-run-id-statistics-compute-post: + parameters: + path: + run_id: "c5e1142f-de29-45b2-b29c-fe37e6509c8a" + responses: + "200": + application/json: {"run_id": "d0a37f68-84f6-49e1-a0c7-4f013b41911a", "statistics": {}} + "400": + application/json: {"detail": {"message": "", "error_code": "PROJECT_NAME_ALREADY_EXISTS"}} + get_evaluation_run_record_v2_v1_observability_evaluation_runs_v2__run_id__records__record_id__get: + speakeasy-default-get-evaluation-run-record-v2-v1-observability-evaluation-runs-v2-run-id-records-record-id-get: + parameters: + path: + run_id: "4561f251-c638-4a33-8739-db876b032f73" + record_id: "24b40e66-4e0d-4788-bb5a-df09239c7ba9" + responses: + "200": + application/json: {"id": "ff984af6-0c7b-45c7-9664-00d1a77fba60", "created_at": "2024-03-26T09:27:45.399Z", "updated_at": "2024-11-15T16:50:01.652Z", "deleted_at": "2026-12-09T05:22:58.794Z", "input": ""} + "400": + application/json: {"detail": {"message": "", "error_code": "EVALUATION_CURRENTLY_RUNNING"}} + search_evaluation_run_records_v2_v1_observability_evaluation_runs_v2__run_id__records_search_post: + speakeasy-default-search-evaluation-run-records-v2-v1-observability-evaluation-runs-v2-run-id-records-search-post: + parameters: + path: + run_id: "3ec2a158-4bb7-4020-8a52-0f64a2745094" + query: + page_size: 50 + page: 1 + responses: + "200": + application/json: {"records": {"count": 898132}} + "400": + application/json: {"detail": {"message": "", "error_code": "AUTH_FORBIDDEN_WORKSPACE_NOT_FOUND"}} + list_optimizations_v1_observability_optimizations_get: + speakeasy-default-list-optimizations-v1-observability-optimizations-get: + parameters: + query: + page_size: 50 + page: 1 + responses: + "200": + application/json: {"optimizations": {"count": 545145}} + "400": + application/json: {"detail": {"message": "", "error_code": "PIPELINE_CONFIG_ALREADY_EXISTS"}} + get_optimization_v1_observability_optimizations__optimization_id__get: + speakeasy-default-get-optimization-v1-observability-optimizations-optimization-id-get: + parameters: + path: + optimization_id: "fd7cc96b-0c32-4b79-b7e4-63786d9dcfea" + responses: + "200": + application/json: {"id": "7cf1b3fb-3978-44bd-b729-d23ef56f609d", "created_at": "2026-10-14T01:20:25.094Z", "updated_at": "2024-01-05T04:41:13.189Z", "deleted_at": "2026-07-01T00:39:26.247Z", "creator_id": "0e37fde5-def8-4221-ae48-3166958c74db", "project_id": "f7bd6714-f3d0-4031-a027-477f8cc2a8d7", "name": "", "algorithm": "", "status": "", "source": ""} + "400": + application/json: {"detail": {"message": "", "error_code": null}} + list_optimization_trials_v1_observability_optimizations__optimization_id__trials_get: + speakeasy-default-list-optimization-trials-v1-observability-optimizations-optimization-id-trials-get: + parameters: + path: + optimization_id: "54622d5d-6e77-4a86-9908-87b1f8f16424" + query: + page_size: 50 + page: 1 + responses: + "200": + application/json: {"trials": {"count": 520843}} + "400": + application/json: {"detail": {"message": "", "error_code": "AUTH_FORBIDDEN_NOT_WORKSPACE_ADMIN"}} examplesVersion: 1.0.2 generatedTests: {} -releaseNotes: "## Python SDK Changes:\n* `mistral.beta.observability.evaluations.create_pipeline_config()`: \n * `request` **Changed** (Breaking ⚠️)\n * `response` **Changed**\n * `error.detail.error_code` **Changed**\n* `mistral.workflows.deployments.restart_deployment()`: `response` **Changed** (Breaking ⚠️)\n* `mistral.workflows.deployments.start_deployment()`: `response` **Changed** (Breaking ⚠️)\n* `mistral.workflows.deployments.stop_deployment()`: `response` **Changed** (Breaking ⚠️)\n* `mistral.workflows.deployments.get_deployment()`: `response.managed` **Changed** (Breaking ⚠️)\n* `mistral.workflows.deployments.delete_deployment()`: `response` **Changed** (Breaking ⚠️)\n* `mistral.workflows.deployments.update_deployment()`: \n * `request` **Changed** (Breaking ⚠️)\n * `response` **Changed** (Breaking ⚠️)\n* `mistral.workflows.deployments.create_deployment()`: \n * `request` **Changed** (Breaking ⚠️)\n * `response` **Changed** (Breaking ⚠️)\n* `mistral.workflows.deployments.list_deployments()`: \n * `request.owner` **Added**\n * `response.deployments[].managed` **Changed** (Breaking ⚠️)\n* `mistral.agents.complete()`: \n * `request` **Changed** (Breaking ⚠️)\n * `response.choices[].message.content.union(Array)[].union(thinking).thinking[].union(ToolReferenceChunk).tool.union(BuiltInConnectors).enum(mistral_mcp)` **Added**\n* `mistral.chat.complete()`: \n * `request` **Changed** (Breaking ⚠️)\n * `response.choices[].message.content.union(Array)[].union(thinking).thinking[].union(ToolReferenceChunk).tool.union(BuiltInConnectors).enum(mistral_mcp)` **Added**\n* `mistral.beta.connectors.get()`: `request.fetch_customer_data` **Removed** (Breaking ⚠️)\n* `mistral.beta.connectors.list_tools()`: `request.page` **Removed** (Breaking ⚠️)\n* `mistral.beta.connectors.list()`: `request.query_filters` **Changed** (Breaking ⚠️)\n* `mistral.beta.observability.evaluations.update_pipeline_config()`: \n * `request` **Changed** (Breaking ⚠️)\n * `response` **Changed**\n * `error.detail.error_code` **Changed**\n* `mistral.beta.observability.judges.fetch()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.traces.get_trace_fields()`: \n * `response.field_definitions[].source_attribute_key` **Added**\n * `error.detail.error_code` **Changed**\n* `mistral.beta.service_accounts.list()`: `request` **Changed**\n* `mistral.beta.conversations.start()`: \n * `request.inputs.union(Array)[].union(MessageInputEntry).content.union(Array)[].union(ThinkChunk).thinking[].union(ToolReferenceChunk).tool.union(BuiltInConnectors).enum(mistral_mcp)` **Added**\n * `response.outputs[].union(MessageOutputEntry).content.union(Array)[].union(ToolFileChunk).tool.union(BuiltInConnectors).enum(mistral_mcp)` **Added**\n* `mistral.beta.conversations.append()`: \n * `request.inputs.union(Array)[].union(ToolExecutionEntry).name.union(BuiltInConnectors).enum(mistral_mcp)` **Added**\n * `response.outputs[].union(MessageOutputEntry).content.union(Array)[].union(ToolFileChunk).tool.union(BuiltInConnectors).enum(mistral_mcp)` **Added**\n* `mistral.beta.conversations.get_history()`: `response.entries[].union(ToolExecutionEntry).name.union(BuiltInConnectors).enum(mistral_mcp)` **Added**\n* `mistral.beta.conversations.get_messages()`: `response.messages[].union(MessageInputEntry).content.union(Array)[].union(ToolFileChunk).tool.union(BuiltInConnectors).enum(mistral_mcp)` **Added**\n* `mistral.beta.conversations.restart()`: \n * `request.inputs.union(Array)[].union(ToolExecutionEntry).name.union(BuiltInConnectors).enum(mistral_mcp)` **Added**\n * `response.outputs[].union(MessageOutputEntry).content.union(Array)[].union(ToolFileChunk).tool.union(BuiltInConnectors).enum(mistral_mcp)` **Added**\n* `mistral.beta.observability.judges.create()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.judges.list()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.import_from_spans()`: **Added**\n* `mistral.beta.observability.judges.delete()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.judges.update()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.judges.judge_conversation()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.create()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.list()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.fetch()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.delete()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.update()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.list_records()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.create_record()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.import_from_file()`: \n * `response.result` **Added**\n * `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.import_from_playground()`: \n * `response.result` **Added**\n * `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.import_from_dataset_records()`: \n * `response.result` **Added**\n * `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.export_to_jsonl()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.fetch_task()`: \n * `response.result` **Added**\n * `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.list_tasks()`: \n * `response.tasks.results[].result` **Added**\n * `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.records.fetch()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.records.delete()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.records.bulk_delete()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.records.judge()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.records.update_payload()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.records.update_properties()`: `error.detail.error_code` **Changed**\n* `mistral.beta.connectors.delete_workspace_credentials()`: **Removed** (Breaking ⚠️)\n* `mistral.beta.observability.evaluations.list_pipeline_configs()`: \n * `response.pipeline_configs.results[]` **Changed**\n * `error.detail.error_code` **Changed**\n* `mistral.beta.observability.evaluations.get_pipeline_config()`: \n * `response` **Changed**\n * `error.detail.error_code` **Changed**\n* `mistral.beta.connectors.delete_organization_credentials()`: **Removed** (Breaking ⚠️)\n* `mistral.beta.observability.evaluations.delete_pipeline_config()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.logs.search()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.logs.list()`: \n * `response.field_definitions[].source_attribute_key` **Added**\n * `error.detail.error_code` **Changed**\n* `mistral.beta.observability.logs.fetch_options()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.traces.search()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.traces.aggregate()`: `error.detail.error_code` **Changed**\n* `mistral.beta.connectors.delete_user_credentials()`: **Removed** (Breaking ⚠️)\n* `mistral.beta.observability.traces.get_trace_by_id()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.traces.get_trace_spans()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.traces.fetch_options()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.traces.get_span_by_id()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.spans.search_spans()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.spans.aggregate()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.spans.search_span_evaluations()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.spans.search_latest_span_evaluations()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.spans.list_span_fields()`: \n * `response.field_definitions[].source_attribute_key` **Added**\n * `error.detail.error_code` **Changed**\n* `mistral.beta.observability.spans.list_span_eval_fields()`: \n * `response.field_definitions[].source_attribute_key` **Added**\n * `error.detail.error_code` **Changed**\n* `mistral.beta.observability.spans.fetch_span_field_options()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.spans.fetch_span_eval_field_options()`: `error.detail.error_code` **Changed**\n* `mistral.beta.connectors.create()`: \n * `request.union(mcp).auth_data.client_scopes` **Added**\n* `mistral.workflows.deployments.unharden_deployment()`: **Added**\n* `mistral.beta.connectors.call_tool()`: **Deprecated**\n* `mistral.audio.voices.search()`: **Added**\n* `mistral.beta.rag.managed_indexes.get_chunk()`: **Added**\n* `mistral.beta.connectors.update()`: \n * `request_body.union(mcp).auth_methods[].union(union (0)).union(oauth2).union(authorization_code).auth_data.client_scopes` **Added**\n* `mistral.beta.rag.managed_indexes.create()`: `response.creator_id` **Added**\n* `mistral.beta.rag.managed_indexes.list()`: \n * `request` **Changed**\n * `response.data[].creator_id` **Added**\n* `mistral.beta.rag.managed_indexes.get()`: `response.creator_id` **Added**\n* `mistral.beta.rag.managed_indexes.update()`: `response.creator_id` **Added**\n* `mistral.beta.rag.managed_indexes.search()`: `request.retriever` **Changed**\n* `mistral.beta.users.get_identity()`: `request.security` **Changed**\n* `mistral.beta.users.list_organizations()`: `request.security` **Changed**\n* `mistral.beta.users.list_workspaces()`: `request.security` **Changed**\n* `mistral.beta.rag.managed_indexes.grep()`: **Added**\n* `mistral.fim.complete()`: `response.choices[].message.content.union(Array)[].union(thinking).thinking[].union(ToolReferenceChunk).tool.union(BuiltInConnectors).enum(mistral_mcp)` **Added**\n* `mistral.beta.rag.managed_indexes.read()`: **Added**\n* `mistral.classifiers.moderate_chat()`: \n * `request.inputs.union(Array<>)[].union(system).content.union(Array)[].union(thinking).thinking[].union(ToolReferenceChunk).tool.union(BuiltInConnectors).enum(mistral_mcp)` **Added**\n* `mistral.classifiers.classify_chat()`: \n * `request.input.union(InstructRequest).messages[].union(user).content.union(Array)[].union(thinking).thinking[].union(ToolReferenceChunk).tool.union(BuiltInConnectors).enum(mistral_mcp)` **Added**\n* `mistral.workflows.events.get_workflow_events()`: `response.events[]` **Changed**\n* `mistral.beta.rag.managed_indexes.navigate()`: **Added**\n* `mistral.beta.connectors.delete_credentials()`: **Added**\n* `mistral.beta.observability.spans.aggregate_span_evaluations()`: **Added**\n* `mistral.beta.observability.evaluations.delete_pipeline()`: **Added**\n* `mistral.beta.observability.evaluations.update_pipeline()`: **Added**\n* `mistral.beta.observability.evaluations.get_pipeline()`: **Added**\n* `mistral.beta.observability.evaluations.list_pipelines()`: **Added**\n* `mistral.beta.observability.evaluations.create_pipeline()`: **Added**\n* `mistral.workflows.deployments.get_deployment_logs()`: `request.log_type` **Added**\n* `mistral.events.get_workflow_events()`: `response.events[]` **Changed**\n" +releaseNotes: "## Python SDK Changes:\n* `mistral.beta.connectors.create()`: \n * `request.union(mcp).auth_methods[].union(oauth2).union(authorization_code).oauth2_server_metadata` **Changed**\n * `response` **Changed** (Breaking ⚠️)\n* `mistral.beta.connectors.list()`: `response.items[]` **Changed** (Breaking ⚠️)\n* `mistral.beta.connectors.get()`: `response` **Changed** (Breaking ⚠️)\n* `mistral.beta.connectors.update()`: \n * `request_body.union(mcp).auth_methods[]` **Changed** (Breaking ⚠️)\n * `response` **Changed** (Breaking ⚠️)\n* `mistral.beta.observability.evaluations.list()`: **Added**\n* `mistral.beta.observability.evaluations.get()`: **Added**\n* `mistral.beta.observability.evaluations.projects.list()`: **Added**\n* `mistral.beta.observability.evaluations.projects.get()`: **Added**\n* `mistral.beta.observability.evaluations.runs.search()`: **Added**\n* `mistral.beta.observability.evaluations.runs.search_all()`: **Added**\n* `mistral.beta.observability.evaluations.runs.get()`: **Added**\n* `mistral.beta.observability.evaluations.runs.get_statistics()`: **Added**\n* `mistral.beta.observability.evaluations.runs.compute_statistics()`: **Added**\n* `mistral.beta.observability.evaluations.records.get()`: **Added**\n* `mistral.beta.observability.evaluations.records.search()`: **Added**\n* `mistral.beta.observability.evaluations.optimizations.list()`: **Added**\n* `mistral.beta.observability.evaluations.optimizations.get()`: **Added**\n* `mistral.beta.observability.evaluations.optimizations.list_trials()`: **Added**\n* `mistral.beta.observability.judges.create()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.judges.list()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.judges.fetch()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.judges.delete()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.judges.update()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.judges.judge_conversation()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.create()`: \n * `response.slug` **Added**\n * `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.list()`: \n * `response.datasets.results[].slug` **Added**\n * `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.fetch()`: \n * `response.slug` **Added**\n * `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.delete()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.update()`: \n * `response.slug` **Added**\n * `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.list_records()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.create_record()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.import_from_file()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.import_from_playground()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.import_from_spans()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.import_from_dataset_records()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.export_to_jsonl()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.fetch_task()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.list_tasks()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.records.fetch()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.records.delete()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.records.bulk_delete()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.records.judge()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.records.update_payload()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.datasets.records.update_properties()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.evaluations.create_pipeline_config()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.evaluations.list_pipeline_configs()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.evaluations.get_pipeline_config()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.evaluations.update_pipeline_config()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.evaluations.delete_pipeline_config()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.evaluations.create_pipeline()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.evaluations.list_pipelines()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.evaluations.get_pipeline()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.evaluations.update_pipeline()`: \n * `request` **Changed**\n * `error.detail.error_code` **Changed**\n* `mistral.beta.observability.evaluations.delete_pipeline()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.logs.search()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.logs.list()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.logs.fetch_options()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.traces.search()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.traces.aggregate()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.traces.get_trace_fields()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.traces.get_trace_by_id()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.traces.get_trace_spans()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.traces.fetch_options()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.traces.get_span_by_id()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.spans.search_spans()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.spans.aggregate()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.spans.aggregate_span_evaluations()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.spans.search_span_evaluations()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.spans.search_latest_span_evaluations()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.spans.list_span_fields()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.spans.list_span_eval_fields()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.spans.fetch_span_field_options()`: `error.detail.error_code` **Changed**\n* `mistral.beta.observability.spans.fetch_span_eval_field_options()`: `error.detail.error_code` **Changed**\n* `mistral.files.upload()`: \n * `request.purpose` **Changed**\n * `response.purpose.enum(agentic_safety)` **Added**\n* `mistral.files.list()`: \n * `request.purpose` **Changed**\n * `response.data[].purpose.enum(agentic_safety)` **Added**\n* `mistral.files.retrieve()`: `response.purpose.enum(agentic_safety)` **Added**\n* `mistral.chat.complete()`: \n * `request.messages[].union(assistant).content.union(Array)[]` **Changed**\n * `response.choices[].message.content.union(Array)[]` **Changed**\n* `mistral.fim.complete()`: `response.choices[].message.content.union(Array)[]` **Changed**\n* `mistral.agents.complete()`: \n * `request.messages[].union(user).content.union(Array)[]` **Changed**\n * `response.choices[].message.content.union(Array)[]` **Changed**\n* `mistral.classifiers.moderate_chat()`: \n * `request.inputs.union(Array<>)[].union(assistant).content.union(Array)[]` **Changed**\n* `mistral.classifiers.classify_chat()`: \n * `request.input.union(InstructRequest).messages[].union(assistant).content.union(Array)[]` **Changed**\n* `mistral.audio.voices.list()`: `response.items[].kind` **Added**\n* `mistral.audio.voices.create()`: `response.kind` **Added**\n* `mistral.audio.voices.delete()`: `response.kind` **Added**\n* `mistral.audio.voices.update()`: `response.kind` **Added**\n* `mistral.audio.voices.get()`: `response.kind` **Added**\n* `mistral.audio.voices.search()`: `response.data[].kind` **Added**\n* `mistral.workflows.get_workflow_registrations()`: `request.workflow_name` **Added**\n" generatedFiles: - .gitattributes - .vscode/settings.json diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 07c602d7b..54485ddc4 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -32,7 +32,7 @@ generation: generateNewTests: false skipResponseBodyAssertions: false python: - version: 3.0.0 + version: 3.1.0 additionalDependencies: dev: pytest: ^8.2.2 diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 4b7399bea..86f75fe3e 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -16,8 +16,8 @@ sources: - speakeasy-mistralai-gcp-sdk-26292830187-1 mistral-openapi: sourceNamespace: mistral-openapi - sourceRevisionDigest: sha256:5c136a8e459fca0edf36b519df7d0656c349368e5d8d7783bf0fa9fed34f38b3 - sourceBlobDigest: sha256:cd1f89be90a7f5c6d27326308ce3d905f47830c99abe7f1fea69dc6647e1a320 + sourceRevisionDigest: sha256:0f0cd5f8c49b7aef4ce394319ea6d3d528b13db1687fd74758e95aa24ccf0080 + sourceBlobDigest: sha256:042ce5a3793fde34859bd5dc853ba71d866a369949d8555207cccf50e07432b3 tags: - latest - 1.0.0 @@ -39,10 +39,10 @@ targets: mistralai-sdk: source: mistral-openapi sourceNamespace: mistral-openapi - sourceRevisionDigest: sha256:5c136a8e459fca0edf36b519df7d0656c349368e5d8d7783bf0fa9fed34f38b3 - sourceBlobDigest: sha256:cd1f89be90a7f5c6d27326308ce3d905f47830c99abe7f1fea69dc6647e1a320 + sourceRevisionDigest: sha256:0f0cd5f8c49b7aef4ce394319ea6d3d528b13db1687fd74758e95aa24ccf0080 + sourceBlobDigest: sha256:042ce5a3793fde34859bd5dc853ba71d866a369949d8555207cccf50e07432b3 codeSamplesNamespace: mistral-openapi-python-code-samples - codeSamplesRevisionDigest: sha256:3c3e420f5d5c47961f3273528d7f7d733d5a994f148e7f7fe4536fa712be4232 + codeSamplesRevisionDigest: sha256:5648198ba0c5b8fdee77c5502e11b89b7d5307291bc72f134c38cbb622b1eacc workflow: workflowVersion: 1.0.0 speakeasyVersion: 1.796.4 @@ -56,6 +56,8 @@ workflow: mistral-openapi: inputs: - location: ../openapi/specs/v2/main-sdk.yaml + overlays: + - location: .speakeasy/connector-id-or-name-overlay.yaml registry: location: registry.speakeasyapi.dev/mistral-dev/mistral-dev/mistral-openapi targets: diff --git a/MIGRATION.md b/MIGRATION.md index 629163254..099839d1a 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -23,21 +23,6 @@ The SDK depends on `httpx2` instead of `httpx`, and the `agents` extra on `mcp>= - `mistral.beta.connectors.http_client()` returns an `httpx2.AsyncClient`. - MCP results use MCP 2.2 field names, e.g. `structured_content` instead of `structuredContent`. -## Service-Account Authentication - -`Mistral()` reads a service-account token from the file at `MISTRAL_SA_TOKEN_PATH` when one is configured. Credentials resolve in this order: - -1. An `Authorization` header you set yourself, through `http_headers` or per request -2. An explicit `api_key` or `security` passed to the client -3. The token file at `MISTRAL_SA_TOKEN_PATH` -4. `MISTRAL_API_KEY` - -Set both `MISTRAL_SA_TOKEN_PATH` and `MISTRAL_API_KEY` and the token file wins, so an environment carrying both authenticates as the service account where v2 used the API key. - -The file is re-read on every request so rotation is picked up without a restart. If `MISTRAL_SA_TOKEN_PATH` is set but the file is missing, unreadable or empty, every request that would otherwise use the token file or `MISTRAL_API_KEY` raises `ServiceAccountTokenError`, with no fallback; unset the variable rather than leaving it pointing at a path that does not exist. An explicit `api_key` or `security` short-circuits the lookup, so it is unaffected. - -The token is sent to whatever `server_url` the client is configured with. `MistralAzure` and `MistralGCP` do not read it. - ## Chat and Agents Completions `chat.complete`, `chat.stream`, `agents.complete` and `agents.stream` no longer accept the `web_search`, `web_search_premium` and `code_interpreter` tools. Use them through the Conversations API (`beta.conversations`) or an agent created with `beta.agents.create`, where `WebSearchTool`, `WebSearchPremiumTool` and `CodeInterpreterTool` remain available. diff --git a/README-PYPI.md b/README-PYPI.md index 2e1bcb066..d61b540c3 100644 --- a/README-PYPI.md +++ b/README-PYPI.md @@ -594,7 +594,7 @@ print(res.choices[0].message.content) * [create](https://github.com/mistralai/client-python/blob/main/docs/sdks/datasets/README.md#create) - Create a new empty dataset * [list](https://github.com/mistralai/client-python/blob/main/docs/sdks/datasets/README.md#list) - List existing datasets -* [fetch](https://github.com/mistralai/client-python/blob/main/docs/sdks/datasets/README.md#fetch) - Get dataset by id +* [fetch](https://github.com/mistralai/client-python/blob/main/docs/sdks/datasets/README.md#fetch) - Get dataset by ID or slug * [delete](https://github.com/mistralai/client-python/blob/main/docs/sdks/datasets/README.md#delete) - Delete a dataset * [update](https://github.com/mistralai/client-python/blob/main/docs/sdks/datasets/README.md#update) - Patch dataset * [list_records](https://github.com/mistralai/client-python/blob/main/docs/sdks/datasets/README.md#list_records) - List existing records in the dataset @@ -607,14 +607,14 @@ print(res.choices[0].message.content) * [fetch_task](https://github.com/mistralai/client-python/blob/main/docs/sdks/datasets/README.md#fetch_task) - Get status of a dataset import task * [list_tasks](https://github.com/mistralai/client-python/blob/main/docs/sdks/datasets/README.md#list_tasks) - List import tasks for the given dataset -#### [Beta.Observability.Datasets.Records](https://github.com/mistralai/client-python/blob/main/docs/sdks/records/README.md) +#### [Beta.Observability.Datasets.Records](https://github.com/mistralai/client-python/blob/main/docs/sdks/datasetsrecords/README.md) -* [fetch](https://github.com/mistralai/client-python/blob/main/docs/sdks/records/README.md#fetch) - Get the content of a given dataset record -* [delete](https://github.com/mistralai/client-python/blob/main/docs/sdks/records/README.md#delete) - Delete a record from a dataset -* [bulk_delete](https://github.com/mistralai/client-python/blob/main/docs/sdks/records/README.md#bulk_delete) - Delete multiple records from datasets -* [judge](https://github.com/mistralai/client-python/blob/main/docs/sdks/records/README.md#judge) - Run Judge on a dataset record based on the given options -* [update_payload](https://github.com/mistralai/client-python/blob/main/docs/sdks/records/README.md#update_payload) - Update a dataset record payload -* [update_properties](https://github.com/mistralai/client-python/blob/main/docs/sdks/records/README.md#update_properties) - Update dataset record properties +* [fetch](https://github.com/mistralai/client-python/blob/main/docs/sdks/datasetsrecords/README.md#fetch) - Get the content of a given dataset record +* [delete](https://github.com/mistralai/client-python/blob/main/docs/sdks/datasetsrecords/README.md#delete) - Delete a record from a dataset +* [bulk_delete](https://github.com/mistralai/client-python/blob/main/docs/sdks/datasetsrecords/README.md#bulk_delete) - Delete multiple records from datasets +* [judge](https://github.com/mistralai/client-python/blob/main/docs/sdks/datasetsrecords/README.md#judge) - Run Judge on a dataset record based on the given options +* [update_payload](https://github.com/mistralai/client-python/blob/main/docs/sdks/datasetsrecords/README.md#update_payload) - Update a dataset record payload +* [update_properties](https://github.com/mistralai/client-python/blob/main/docs/sdks/datasetsrecords/README.md#update_properties) - Update dataset record properties ### [Beta.Observability.Evaluations](https://github.com/mistralai/client-python/blob/main/docs/sdks/evaluations/README.md) @@ -628,6 +628,32 @@ print(res.choices[0].message.content) * [get_pipeline](https://github.com/mistralai/client-python/blob/main/docs/sdks/evaluations/README.md#get_pipeline) - Get a pipeline * [update_pipeline](https://github.com/mistralai/client-python/blob/main/docs/sdks/evaluations/README.md#update_pipeline) - Update a pipeline * [delete_pipeline](https://github.com/mistralai/client-python/blob/main/docs/sdks/evaluations/README.md#delete_pipeline) - Delete a pipeline +* [list](https://github.com/mistralai/client-python/blob/main/docs/sdks/evaluations/README.md#list) - List evaluations for a project +* [get](https://github.com/mistralai/client-python/blob/main/docs/sdks/evaluations/README.md#get) - Get evaluation by slug + +#### [Beta.Observability.Evaluations.Optimizations](https://github.com/mistralai/client-python/blob/main/docs/sdks/optimizations/README.md) + +* [list](https://github.com/mistralai/client-python/blob/main/docs/sdks/optimizations/README.md#list) - List optimizations with optional filters +* [get](https://github.com/mistralai/client-python/blob/main/docs/sdks/optimizations/README.md#get) - Get an optimization by id (with its anchored evaluation + project) +* [list_trials](https://github.com/mistralai/client-python/blob/main/docs/sdks/optimizations/README.md#list_trials) - List an optimization's trials with their observation runs (paginated) + +#### [Beta.Observability.Evaluations.Projects](https://github.com/mistralai/client-python/blob/main/docs/sdks/evaluationsprojects/README.md) + +* [list](https://github.com/mistralai/client-python/blob/main/docs/sdks/evaluationsprojects/README.md#list) - List projects +* [get](https://github.com/mistralai/client-python/blob/main/docs/sdks/evaluationsprojects/README.md#get) - Get project by slug + +#### [Beta.Observability.Evaluations.Records](https://github.com/mistralai/client-python/blob/main/docs/sdks/evaluationsrecords/README.md) + +* [get](https://github.com/mistralai/client-python/blob/main/docs/sdks/evaluationsrecords/README.md#get) - Get a specific record from an evaluation run +* [search](https://github.com/mistralai/client-python/blob/main/docs/sdks/evaluationsrecords/README.md#search) - Search records for an evaluation run with content filters + +#### [Beta.Observability.Evaluations.Runs](https://github.com/mistralai/client-python/blob/main/docs/sdks/evaluationsruns/README.md) + +* [search](https://github.com/mistralai/client-python/blob/main/docs/sdks/evaluationsruns/README.md#search) - Search evaluation runs with filters +* [search_all](https://github.com/mistralai/client-python/blob/main/docs/sdks/evaluationsruns/README.md#search_all) - Search evaluation runs across all evaluations +* [get](https://github.com/mistralai/client-python/blob/main/docs/sdks/evaluationsruns/README.md#get) - Get a specific evaluation run by ID +* [get_statistics](https://github.com/mistralai/client-python/blob/main/docs/sdks/evaluationsruns/README.md#get_statistics) - Get statistics for a specific evaluation run +* [compute_statistics](https://github.com/mistralai/client-python/blob/main/docs/sdks/evaluationsruns/README.md#compute_statistics) - Compute statistics for a specific evaluation run with optional filters ### [Beta.Observability.Judges](https://github.com/mistralai/client-python/blob/main/docs/sdks/judges/README.md) @@ -845,11 +871,11 @@ print(res.choices[0].message.content) * [get_workflow_metrics](https://github.com/mistralai/client-python/blob/main/docs/sdks/metrics/README.md#get_workflow_metrics) - Get Workflow Metrics -#### [Workflows.Runs](https://github.com/mistralai/client-python/blob/main/docs/sdks/runs/README.md) +#### [Workflows.Runs](https://github.com/mistralai/client-python/blob/main/docs/sdks/workflowsruns/README.md) -* [list_runs](https://github.com/mistralai/client-python/blob/main/docs/sdks/runs/README.md#list_runs) - List Runs -* [get_run](https://github.com/mistralai/client-python/blob/main/docs/sdks/runs/README.md#get_run) - Get Run -* [get_run_history](https://github.com/mistralai/client-python/blob/main/docs/sdks/runs/README.md#get_run_history) - Get Run History +* [list_runs](https://github.com/mistralai/client-python/blob/main/docs/sdks/workflowsruns/README.md#list_runs) - List Runs +* [get_run](https://github.com/mistralai/client-python/blob/main/docs/sdks/workflowsruns/README.md#get_run) - Get Run +* [get_run_history](https://github.com/mistralai/client-python/blob/main/docs/sdks/workflowsruns/README.md#get_run_history) - Get Run History #### [Workflows.Schedules](https://github.com/mistralai/client-python/blob/main/docs/sdks/schedules/README.md) @@ -1076,8 +1102,8 @@ with Mistral( **Inherit from [`MistralError`](https://github.com/mistralai/client-python/blob/main/src/mistralai/client/errors/mistralerror.py)**: -* [`HTTPValidationError`](https://github.com/mistralai/client-python/blob/main/src/mistralai/client/errors/httpvalidationerror.py): Validation Error. Status code `422`. Applicable to 165 of 264 methods.* -* [`ObservabilityError`](https://github.com/mistralai/client-python/blob/main/src/mistralai/client/errors/observabilityerror.py): Bad Request - Invalid request parameters or data. Applicable to 55 of 264 methods.* +* [`HTTPValidationError`](https://github.com/mistralai/client-python/blob/main/src/mistralai/client/errors/httpvalidationerror.py): Validation Error. Status code `422`. Applicable to 165 of 278 methods.* +* [`ObservabilityError`](https://github.com/mistralai/client-python/blob/main/src/mistralai/client/errors/observabilityerror.py): Bad Request - Invalid request parameters or data. Applicable to 69 of 278 methods.* * [`ResponseValidationError`](https://github.com/mistralai/client-python/blob/main/src/mistralai/client/errors/responsevalidationerror.py): Type mismatch between the response data and the expected Pydantic model. Provides access to the Pydantic validation error via the `cause` attribute. diff --git a/README.md b/README.md index f46245b5b..456bb726b 100644 --- a/README.md +++ b/README.md @@ -594,7 +594,7 @@ print(res.choices[0].message.content) * [create](docs/sdks/datasets/README.md#create) - Create a new empty dataset * [list](docs/sdks/datasets/README.md#list) - List existing datasets -* [fetch](docs/sdks/datasets/README.md#fetch) - Get dataset by id +* [fetch](docs/sdks/datasets/README.md#fetch) - Get dataset by ID or slug * [delete](docs/sdks/datasets/README.md#delete) - Delete a dataset * [update](docs/sdks/datasets/README.md#update) - Patch dataset * [list_records](docs/sdks/datasets/README.md#list_records) - List existing records in the dataset @@ -607,14 +607,14 @@ print(res.choices[0].message.content) * [fetch_task](docs/sdks/datasets/README.md#fetch_task) - Get status of a dataset import task * [list_tasks](docs/sdks/datasets/README.md#list_tasks) - List import tasks for the given dataset -#### [Beta.Observability.Datasets.Records](docs/sdks/records/README.md) +#### [Beta.Observability.Datasets.Records](docs/sdks/datasetsrecords/README.md) -* [fetch](docs/sdks/records/README.md#fetch) - Get the content of a given dataset record -* [delete](docs/sdks/records/README.md#delete) - Delete a record from a dataset -* [bulk_delete](docs/sdks/records/README.md#bulk_delete) - Delete multiple records from datasets -* [judge](docs/sdks/records/README.md#judge) - Run Judge on a dataset record based on the given options -* [update_payload](docs/sdks/records/README.md#update_payload) - Update a dataset record payload -* [update_properties](docs/sdks/records/README.md#update_properties) - Update dataset record properties +* [fetch](docs/sdks/datasetsrecords/README.md#fetch) - Get the content of a given dataset record +* [delete](docs/sdks/datasetsrecords/README.md#delete) - Delete a record from a dataset +* [bulk_delete](docs/sdks/datasetsrecords/README.md#bulk_delete) - Delete multiple records from datasets +* [judge](docs/sdks/datasetsrecords/README.md#judge) - Run Judge on a dataset record based on the given options +* [update_payload](docs/sdks/datasetsrecords/README.md#update_payload) - Update a dataset record payload +* [update_properties](docs/sdks/datasetsrecords/README.md#update_properties) - Update dataset record properties ### [Beta.Observability.Evaluations](docs/sdks/evaluations/README.md) @@ -628,6 +628,32 @@ print(res.choices[0].message.content) * [get_pipeline](docs/sdks/evaluations/README.md#get_pipeline) - Get a pipeline * [update_pipeline](docs/sdks/evaluations/README.md#update_pipeline) - Update a pipeline * [delete_pipeline](docs/sdks/evaluations/README.md#delete_pipeline) - Delete a pipeline +* [list](docs/sdks/evaluations/README.md#list) - List evaluations for a project +* [get](docs/sdks/evaluations/README.md#get) - Get evaluation by slug + +#### [Beta.Observability.Evaluations.Optimizations](docs/sdks/optimizations/README.md) + +* [list](docs/sdks/optimizations/README.md#list) - List optimizations with optional filters +* [get](docs/sdks/optimizations/README.md#get) - Get an optimization by id (with its anchored evaluation + project) +* [list_trials](docs/sdks/optimizations/README.md#list_trials) - List an optimization's trials with their observation runs (paginated) + +#### [Beta.Observability.Evaluations.Projects](docs/sdks/evaluationsprojects/README.md) + +* [list](docs/sdks/evaluationsprojects/README.md#list) - List projects +* [get](docs/sdks/evaluationsprojects/README.md#get) - Get project by slug + +#### [Beta.Observability.Evaluations.Records](docs/sdks/evaluationsrecords/README.md) + +* [get](docs/sdks/evaluationsrecords/README.md#get) - Get a specific record from an evaluation run +* [search](docs/sdks/evaluationsrecords/README.md#search) - Search records for an evaluation run with content filters + +#### [Beta.Observability.Evaluations.Runs](docs/sdks/evaluationsruns/README.md) + +* [search](docs/sdks/evaluationsruns/README.md#search) - Search evaluation runs with filters +* [search_all](docs/sdks/evaluationsruns/README.md#search_all) - Search evaluation runs across all evaluations +* [get](docs/sdks/evaluationsruns/README.md#get) - Get a specific evaluation run by ID +* [get_statistics](docs/sdks/evaluationsruns/README.md#get_statistics) - Get statistics for a specific evaluation run +* [compute_statistics](docs/sdks/evaluationsruns/README.md#compute_statistics) - Compute statistics for a specific evaluation run with optional filters ### [Beta.Observability.Judges](docs/sdks/judges/README.md) @@ -845,11 +871,11 @@ print(res.choices[0].message.content) * [get_workflow_metrics](docs/sdks/metrics/README.md#get_workflow_metrics) - Get Workflow Metrics -#### [Workflows.Runs](docs/sdks/runs/README.md) +#### [Workflows.Runs](docs/sdks/workflowsruns/README.md) -* [list_runs](docs/sdks/runs/README.md#list_runs) - List Runs -* [get_run](docs/sdks/runs/README.md#get_run) - Get Run -* [get_run_history](docs/sdks/runs/README.md#get_run_history) - Get Run History +* [list_runs](docs/sdks/workflowsruns/README.md#list_runs) - List Runs +* [get_run](docs/sdks/workflowsruns/README.md#get_run) - Get Run +* [get_run_history](docs/sdks/workflowsruns/README.md#get_run_history) - Get Run History #### [Workflows.Schedules](docs/sdks/schedules/README.md) @@ -1076,8 +1102,8 @@ with Mistral( **Inherit from [`MistralError`](./src/mistralai/client/errors/mistralerror.py)**: -* [`HTTPValidationError`](./src/mistralai/client/errors/httpvalidationerror.py): Validation Error. Status code `422`. Applicable to 165 of 264 methods.* -* [`ObservabilityError`](./src/mistralai/client/errors/observabilityerror.py): Bad Request - Invalid request parameters or data. Applicable to 55 of 264 methods.* +* [`HTTPValidationError`](./src/mistralai/client/errors/httpvalidationerror.py): Validation Error. Status code `422`. Applicable to 165 of 278 methods.* +* [`ObservabilityError`](./src/mistralai/client/errors/observabilityerror.py): Bad Request - Invalid request parameters or data. Applicable to 69 of 278 methods.* * [`ResponseValidationError`](./src/mistralai/client/errors/responsevalidationerror.py): Type mismatch between the response data and the expected Pydantic model. Provides access to the Pydantic validation error via the `cause` attribute. diff --git a/RELEASES.md b/RELEASES.md index 0a9454c4d..97a3783f0 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1161,3 +1161,131 @@ Based on: - [python v3.0.0] . ### Releases - [PyPI v3.0.0] https://pypi.org/project/mistralai/3.0.0 - . + +## 2026-10-06 15:20:33 +### Generated SDK baseline differences +The published SDK or generator baseline differs from the baseline used by the OpenAPI changelog. + +
+Generated surface details + +#### Stable compatibility changes +Removed from the stable API surface (7): +- `Runs` +- `Runs.get_run` +- `Runs.get_run_async` +- `Runs.get_run_history` +- `Runs.get_run_history_async` +- `Runs.list_runs` +- `Runs.list_runs_async` +#### Stable type changes +Changed types or signatures on the stable surface (1): +- `Workflows.runs: Runs -> WorkflowsRuns` +#### Beta surface changes +Removed from the beta surface (16): +- `Records` +- `AuthenticationMethodCreateOrUpdateRequest.auth_direction` +- `HTTPConnector.system_prompt_route` +- `MCPConnector.system_prompt_route` +- `Records.bulk_delete` +- `Records.bulk_delete_async` +- `Records.delete` +- `Records.delete_async` +- `Records.fetch` +- `Records.fetch_async` +- `Records.judge` +- `Records.judge_async` +- `Records.update_payload` +- `Records.update_payload_async` +- `Records.update_properties` +- `Records.update_properties_async` + +Changed types or signatures in beta (27): +- `AuthenticationConfiguration.authentication_type: OutboundAuthenticationType -> AuthenticationType` +- `AuthenticationMethodCreateOrUpdateRequest.method_type: MethodType -> AuthenticationType` +- `AuthenticationMethodCreateOrUpdateRequestTypedDict.method_type: MethodTypeTypedDict -> AuthenticationType` +- `ConnectorGetAuthURLV1Request.method_type: Annotated[Optional[OutboundAuthenticationType], FieldMetadata(query=QueryParamMetadata(style='form', explode=True))] -> Annotated[Optional[AuthenticationType], FieldMetadata(query=QueryParamMetadata(style='form', explode=True))]` +- `ConnectorGetAuthURLV1RequestTypedDict.method_type: NotRequired[OutboundAuthenticationType] -> NotRequired[AuthenticationType]` +- `ConnectorListOrganizationCredentialsV1Request.auth_type: Annotated[OptionalNullable[OutboundAuthenticationType], FieldMetadata(query=QueryParamMetadata(style='form', explode=True))] -> Annotated[OptionalNullable[AuthenticationType], FieldMetadata(query=QueryParamMetadata(style='form', explode=True))]` +- `ConnectorListOrganizationCredentialsV1RequestTypedDict.auth_type: NotRequired[Nullable[OutboundAuthenticationType]] -> NotRequired[Nullable[AuthenticationType]]` +- `ConnectorListUserCredentialsV1Request.auth_type: Annotated[OptionalNullable[OutboundAuthenticationType], FieldMetadata(query=QueryParamMetadata(style='form', explode=True))] -> Annotated[OptionalNullable[AuthenticationType], FieldMetadata(query=QueryParamMetadata(style='form', explode=True))]` +- `ConnectorListUserCredentialsV1RequestTypedDict.auth_type: NotRequired[Nullable[OutboundAuthenticationType]] -> NotRequired[Nullable[AuthenticationType]]` +- `ConnectorListWorkspaceCredentialsV1Request.auth_type: Annotated[OptionalNullable[OutboundAuthenticationType], FieldMetadata(query=QueryParamMetadata(style='form', explode=True))] -> Annotated[OptionalNullable[AuthenticationType], FieldMetadata(query=QueryParamMetadata(style='form', explode=True))]` +- `ConnectorListWorkspaceCredentialsV1RequestTypedDict.auth_type: NotRequired[Nullable[OutboundAuthenticationType]] -> NotRequired[Nullable[AuthenticationType]]` +- `CredentialsResponse.connector_preset_credentials_for_auth: Optional[List[OutboundAuthenticationType]] -> Optional[List[AuthenticationType]]` +- `CredentialsResponseTypedDict.connector_preset_credentials_for_auth: NotRequired[List[OutboundAuthenticationType]] -> NotRequired[List[AuthenticationType]]` +- `Datasets.records: Records -> DatasetsRecords` +- `OAuth2AuthorizationCodeAuthMethod.oauth2_server_metadata: ExtendedOAuthServerMetadata -> OptionalNullable[ExtendedOAuthServerMetadata]` +- `OAuth2AuthorizationCodeAuthMethodTypedDict.oauth2_server_metadata: ExtendedOAuthServerMetadataTypedDict -> NotRequired[Nullable[ExtendedOAuthServerMetadataTypedDict]]` +- `OrderByClause.direction: Optional[Direction] -> Optional[OrderByClauseDirection]` +- `OrderByClauseTypedDict.direction: NotRequired[Direction] -> NotRequired[OrderByClauseDirection]` +- `PublicAuthenticationMethod.method_type: OutboundAuthenticationType -> AuthenticationType` +- `UpdatePipelineRequest.definitions: List[JudgeDefinition] -> Optional[List[JudgeDefinition]]` +- `UpdatePipelineRequest.enabled: bool -> Optional[bool]` +- `UpdatePipelineRequest.name: str -> Optional[str]` +- `UpdatePipelineRequest.selectors: List[PipelineConfigSelector] -> Optional[List[PipelineConfigSelector]]` +- `UpdatePipelineRequestTypedDict.definitions: List[JudgeDefinitionTypedDict] -> NotRequired[List[JudgeDefinitionTypedDict]]` +- `UpdatePipelineRequestTypedDict.enabled: bool -> NotRequired[bool]` +- ...and 2 more + +Now required on an existing beta model (6): +- `Dataset.slug` +- `DatasetPreview.slug` +- `Evaluations.optimizations` +- `Evaluations.projects` +- `Evaluations.records` +- `Evaluations.runs` +
+ +### API changes +#### Beta API changes + +- Removed field `system_prompt_route` from response `items[].union(http)` in `sdk.beta.connectors.list()`. +- Removed field `system_prompt_route` from response `items[].union(mcp)` in `sdk.beta.connectors.list()`. +- Removed field `system_prompt_route` from response `union(http)` in `sdk.beta.connectors.create()`, `sdk.beta.connectors.get()`, and `sdk.beta.connectors.update()`. +- Removed field `system_prompt_route` from response `union(mcp)` in `sdk.beta.connectors.create()`, `sdk.beta.connectors.get()`, and `sdk.beta.connectors.update()`. +- Removed field `auth_direction` from request `body.union(http).auth_methods[].union(AuthenticationMethodCreateOrUpdateRequest)` in `sdk.beta.connectors.update()`. +- Changed field `method_type` in `sdk.beta.connectors.update()`. +- Changed field `auth_methods[]` in `sdk.beta.connectors.update()`. + +#### Added operations + +Beta: + +- `sdk.beta.observability.evaluations.list()` +- `sdk.beta.observability.evaluations.get()` +- `sdk.beta.observability.evaluations.projects.list()` +- `sdk.beta.observability.evaluations.projects.get()` +- `sdk.beta.observability.evaluations.runs.search()` +- `sdk.beta.observability.evaluations.runs.search_all()` +- `sdk.beta.observability.evaluations.runs.get()` +- `sdk.beta.observability.evaluations.runs.get_statistics()` +- `sdk.beta.observability.evaluations.runs.compute_statistics()` +- `sdk.beta.observability.evaluations.records.get()` +- `sdk.beta.observability.evaluations.records.search()` +- `sdk.beta.observability.evaluations.optimizations.list()` +- `sdk.beta.observability.evaluations.optimizations.get()` +- `sdk.beta.observability.evaluations.optimizations.list_trials()` + +#### Schema changes + +- Changed request field `oauth2_server_metadata` in `sdk.beta.connectors.create()` and `sdk.beta.connectors.update()`. +- Added enum values `optimization_not_found` and `project_not_found` across beta observability judges, beta observability datasets, beta observability datasets records, beta observability evaluations, beta observability logs, beta observability traces, beta observability spans (55 operations). +- Added response field `slug` in `sdk.beta.observability.datasets.list()`, `sdk.beta.observability.datasets.create()`, `sdk.beta.observability.datasets.fetch()`, and `sdk.beta.observability.datasets.update()`. +- Changed request fields `definitions`, `enabled`, `name`, and `selectors` in `sdk.beta.observability.evaluations.update_pipeline()`. +- Added request enum value `agentic_safety` in `sdk.files.list()` and `sdk.files.upload()`. +- Added response enum value `agentic_safety` in `sdk.files.list()`, `sdk.files.upload()`, and `sdk.files.retrieve()`. +- Added request variants `resource` and `resource_link` in `sdk.chat.complete()`, `sdk.agents.complete()`, `sdk.classifiers.moderate_chat()`, and `sdk.classifiers.classify_chat()`. +- Added response variants `resource` and `resource_link` in `sdk.chat.complete()`, `sdk.fim.complete()`, and `sdk.agents.complete()`. +- Changed request field `union(Array)[]` in `sdk.chat.complete()`, `sdk.agents.complete()`, `sdk.classifiers.moderate_chat()`, and `sdk.classifiers.classify_chat()`. +- Added response field `kind` across audio voices (6 operations). +- Added request field `workflow_name` in `sdk.workflows.get_workflow_registrations()`. + +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.796.4 (2.935.1) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v3.1.0] . +### Releases +- [PyPI v3.1.0] https://pypi.org/project/mistralai/3.1.0 - . diff --git a/docs/models/authdirection.md b/docs/models/authdirection.md deleted file mode 100644 index c3f547fca..000000000 --- a/docs/models/authdirection.md +++ /dev/null @@ -1,14 +0,0 @@ -# AuthDirection - -## Example Usage - -```python -from mistralai.client.models import AuthDirection -value: AuthDirection = "inbound" -``` - - -## Values - -- `"inbound"` -- `"outbound"` diff --git a/docs/models/authenticationconfiguration.md b/docs/models/authenticationconfiguration.md index 7f59cdaba..f2b558bb1 100644 --- a/docs/models/authenticationconfiguration.md +++ b/docs/models/authenticationconfiguration.md @@ -7,7 +7,7 @@ | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | | `name` | *str* | :heavy_check_mark: | N/A | | `title` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | -| `authentication_type` | [models.OutboundAuthenticationType](../models/outboundauthenticationtype.md) | :heavy_check_mark: | N/A | +| `authentication_type` | [models.AuthenticationType](../models/authenticationtype.md) | :heavy_check_mark: | N/A | | `scope` | [models.ConsumerType](../models/consumertype.md) | :heavy_check_mark: | N/A | | `status` | [OptionalNullable[models.CredentialsStatus]](../models/credentialsstatus.md) | :heavy_minus_sign: | N/A | | `is_default` | *Optional[bool]* | :heavy_minus_sign: | N/A | diff --git a/docs/models/authenticationmethodcreateorupdaterequest.md b/docs/models/authenticationmethodcreateorupdaterequest.md index 6618f1e4f..fce279784 100644 --- a/docs/models/authenticationmethodcreateorupdaterequest.md +++ b/docs/models/authenticationmethodcreateorupdaterequest.md @@ -5,8 +5,7 @@ | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | -| `method_type` | [models.MethodType](../models/methodtype.md) | :heavy_check_mark: | The type of authentication method (e.g. oauth2, bearer, none). | -| `auth_direction` | [Optional[models.AuthDirection]](../models/authdirection.md) | :heavy_minus_sign: | N/A | +| `method_type` | [models.AuthenticationType](../models/authenticationtype.md) | :heavy_check_mark: | N/A | | `headers` | List[[models.ConnectorAuthenticationHeader](../models/connectorauthenticationheader.md)] | :heavy_minus_sign: | Set of headers to connect to the connector | | `global_headers` | Dict[str, [models.GlobalHeaderValue](../models/globalheadervalue.md)] | :heavy_minus_sign: | Connector-wide headers keyed by header name, applied to every credential. Secret values are encrypted at rest and never returned in clear. | | `oauth2_metadata_secrets` | [OptionalNullable[models.Oauth2MetadataSecrets]](../models/oauth2metadatasecrets.md) | :heavy_minus_sign: | New OAuth2 client credentials (client_id and client_secret). | diff --git a/docs/models/outboundauthenticationtype.md b/docs/models/authenticationtype.md similarity index 64% rename from docs/models/outboundauthenticationtype.md rename to docs/models/authenticationtype.md index 72aef73a3..c7f6dace0 100644 --- a/docs/models/outboundauthenticationtype.md +++ b/docs/models/authenticationtype.md @@ -1,12 +1,12 @@ -# OutboundAuthenticationType +# AuthenticationType ## Example Usage ```python -from mistralai.client.models import OutboundAuthenticationType +from mistralai.client.models import AuthenticationType # Open enum: unrecognized values are captured as UnrecognizedStr -value: OutboundAuthenticationType = "oauth2" +value: AuthenticationType = "oauth2" ``` diff --git a/docs/models/average.md b/docs/models/average.md new file mode 100644 index 000000000..9ea2c42fd --- /dev/null +++ b/docs/models/average.md @@ -0,0 +1,19 @@ +# Average + +## Example Usage + +```python +from mistralai.client.models import Average + +# Open enum: unrecognized values are captured as UnrecognizedStr +value: Average = "macro" +``` + + +## Values + +This is an open enum. Unrecognized values will not fail type checks. + +- `"macro"` +- `"micro"` +- `"weighted"` diff --git a/docs/models/categoricalstatistics.md b/docs/models/categoricalstatistics.md new file mode 100644 index 000000000..b9a37cf73 --- /dev/null +++ b/docs/models/categoricalstatistics.md @@ -0,0 +1,14 @@ +# CategoricalStatistics + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | +| `type` | *Optional[Literal["categorical"]]* | :heavy_minus_sign: | N/A | +| `frequencies` | Dict[str, *int*] | :heavy_check_mark: | N/A | +| `mode` | List[*str*] | :heavy_check_mark: | N/A | +| `count` | *int* | :heavy_check_mark: | N/A | +| `values` | List[[models.ScalarStatisticValue](../models/scalarstatisticvalue.md)] | :heavy_minus_sign: | N/A | +| `excluded_count` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `confusion_matrix` | [OptionalNullable[models.ConfusionMatrix]](../models/confusionmatrix.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/classificationstatisticspec.md b/docs/models/classificationstatisticspec.md new file mode 100644 index 000000000..fb52dcef0 --- /dev/null +++ b/docs/models/classificationstatisticspec.md @@ -0,0 +1,21 @@ +# ClassificationStatisticSpec + +A classification metric (``precision``/``recall``/``f1``) over ``(expected, predicted)`` pairs. + +The predicted label is the score ``value``; the expected label is read from the score ``metadata`` +under ``expected_key`` (default ``"expected"``). Provide **exactly one** of ``positive_label`` (a +binary metric scored against that one class) or ``average`` (a multi-class averaging scheme). + +``labels`` pins the class universe so filtered views keep a stable, comparable denominator. + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `kind` | [models.ClassificationStatisticSpecKind](../models/classificationstatisticspeckind.md) | :heavy_check_mark: | N/A | +| `positive_label` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `average` | [OptionalNullable[models.Average]](../models/average.md) | :heavy_minus_sign: | N/A | +| `expected_key` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `labels` | List[*str*] | :heavy_minus_sign: | N/A | +| `goal` | [OptionalNullable[models.GoalSpec]](../models/goalspec.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/classificationstatisticspeckind.md b/docs/models/classificationstatisticspeckind.md new file mode 100644 index 000000000..1c2d9d681 --- /dev/null +++ b/docs/models/classificationstatisticspeckind.md @@ -0,0 +1,19 @@ +# ClassificationStatisticSpecKind + +## Example Usage + +```python +from mistralai.client.models import ClassificationStatisticSpecKind + +# Open enum: unrecognized values are captured as UnrecognizedStr +value: ClassificationStatisticSpecKind = "precision" +``` + + +## Values + +This is an open enum. Unrecognized values will not fail type checks. + +- `"precision"` +- `"recall"` +- `"f1"` diff --git a/docs/models/computefilteredrunstatisticsv2v1observabilityevaluationrunsv2runidstatisticscomputepostrequest.md b/docs/models/computefilteredrunstatisticsv2v1observabilityevaluationrunsv2runidstatisticscomputepostrequest.md new file mode 100644 index 000000000..aabb9e22b --- /dev/null +++ b/docs/models/computefilteredrunstatisticsv2v1observabilityevaluationrunsv2runidstatisticscomputepostrequest.md @@ -0,0 +1,9 @@ +# ComputeFilteredRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsComputePostRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | +| `run_id` | *str* | :heavy_check_mark: | N/A | +| `evaluation_run_record_filter_input` | [OptionalNullable[models.EvaluationRunRecordFilterInput]](../models/evaluationrunrecordfilterinput.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/confusionmatrix.md b/docs/models/confusionmatrix.md new file mode 100644 index 000000000..1b4f92505 --- /dev/null +++ b/docs/models/confusionmatrix.md @@ -0,0 +1,15 @@ +# ConfusionMatrix + +A confusion matrix over ``(expected, predicted)`` label pairs. + +``matrix[i][j]`` is the number of samples whose expected label is ``labels[i]`` and predicted +label is ``labels[j]``. It is the complete, aggregatable representation: precision/recall/f1 for +any class derive from it, and matrices from several runs merge by element-wise sum. + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `labels` | List[*str*] | :heavy_check_mark: | N/A | +| `matrix` | List[List[*int*]] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/connectorgetauthurlv1request.md b/docs/models/connectorgetauthurlv1request.md index bc1f53389..720a34499 100644 --- a/docs/models/connectorgetauthurlv1request.md +++ b/docs/models/connectorgetauthurlv1request.md @@ -7,7 +7,7 @@ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `connector_id_or_name` | *str* | :heavy_check_mark: | N/A | | `app_return_url` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | -| `method_type` | [Optional[models.OutboundAuthenticationType]](../models/outboundauthenticationtype.md) | :heavy_minus_sign: | Auth method type to use for the authorization URL. Required when the connector supports multiple interactive auth methods; otherwise the sole method is selected automatically. Use this to pick a specific method (e.g. 'oauth2' vs 'github_app'). | +| `method_type` | [Optional[models.AuthenticationType]](../models/authenticationtype.md) | :heavy_minus_sign: | Auth method type to use for the authorization URL. Required when the connector supports multiple interactive auth methods; otherwise the sole method is selected automatically. Use this to pick a specific method (e.g. 'oauth2' vs 'github_app'). | | `credentials_name` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `credentials_title` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `github_installation_link` | *Optional[bool]* | :heavy_minus_sign: | Only valid with method_type=oauth2. When true, returns a GitHub App installation URL (https://github.com/apps//installations/new) if the connector has the proper configuration The Github application needs to have 'Request user authorization (OAuth) during installation' enabled to perform the proper auth loop. | \ No newline at end of file diff --git a/docs/models/connectorlistorganizationcredentialsv1request.md b/docs/models/connectorlistorganizationcredentialsv1request.md index 439a2dc84..00c77e218 100644 --- a/docs/models/connectorlistorganizationcredentialsv1request.md +++ b/docs/models/connectorlistorganizationcredentialsv1request.md @@ -3,8 +3,8 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `connector_id_or_name` | *str* | :heavy_check_mark: | N/A | -| `auth_type` | [OptionalNullable[models.OutboundAuthenticationType]](../models/outboundauthenticationtype.md) | :heavy_minus_sign: | N/A | -| `fetch_default` | *Optional[bool]* | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `connector_id_or_name` | *str* | :heavy_check_mark: | N/A | +| `auth_type` | [OptionalNullable[models.AuthenticationType]](../models/authenticationtype.md) | :heavy_minus_sign: | N/A | +| `fetch_default` | *Optional[bool]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/connectorlistusercredentialsv1request.md b/docs/models/connectorlistusercredentialsv1request.md index c79dee4a3..77ed4ffbc 100644 --- a/docs/models/connectorlistusercredentialsv1request.md +++ b/docs/models/connectorlistusercredentialsv1request.md @@ -3,8 +3,8 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `connector_id_or_name` | *str* | :heavy_check_mark: | N/A | -| `auth_type` | [OptionalNullable[models.OutboundAuthenticationType]](../models/outboundauthenticationtype.md) | :heavy_minus_sign: | N/A | -| `fetch_default` | *Optional[bool]* | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `connector_id_or_name` | *str* | :heavy_check_mark: | N/A | +| `auth_type` | [OptionalNullable[models.AuthenticationType]](../models/authenticationtype.md) | :heavy_minus_sign: | N/A | +| `fetch_default` | *Optional[bool]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/connectorlistworkspacecredentialsv1request.md b/docs/models/connectorlistworkspacecredentialsv1request.md index 2e19b1cf9..caaca1155 100644 --- a/docs/models/connectorlistworkspacecredentialsv1request.md +++ b/docs/models/connectorlistworkspacecredentialsv1request.md @@ -3,8 +3,8 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `connector_id_or_name` | *str* | :heavy_check_mark: | N/A | -| `auth_type` | [OptionalNullable[models.OutboundAuthenticationType]](../models/outboundauthenticationtype.md) | :heavy_minus_sign: | N/A | -| `fetch_default` | *Optional[bool]* | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `connector_id_or_name` | *str* | :heavy_check_mark: | N/A | +| `auth_type` | [OptionalNullable[models.AuthenticationType]](../models/authenticationtype.md) | :heavy_minus_sign: | N/A | +| `fetch_default` | *Optional[bool]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/contentchunk.md b/docs/models/contentchunk.md index cb7e51d3a..edaae3a87 100644 --- a/docs/models/contentchunk.md +++ b/docs/models/contentchunk.md @@ -45,3 +45,15 @@ value: models.ThinkChunk = /* values here */ value: models.AudioChunk = /* values here */ ``` +### `models.ResourceChunk` + +```python +value: models.ResourceChunk = /* values here */ +``` + +### `models.ResourceLinkChunk` + +```python +value: models.ResourceLinkChunk = /* values here */ +``` + diff --git a/docs/models/contentsearchfilter.md b/docs/models/contentsearchfilter.md new file mode 100644 index 000000000..6d639cb67 --- /dev/null +++ b/docs/models/contentsearchfilter.md @@ -0,0 +1,10 @@ +# ContentSearchFilter + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `path` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `value` | *str* | :heavy_check_mark: | N/A | +| `operator` | [Optional[models.ContentSearchOperator]](../models/contentsearchoperator.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/contentsearchfiltergroup.md b/docs/models/contentsearchfiltergroup.md new file mode 100644 index 000000000..4dd3053d1 --- /dev/null +++ b/docs/models/contentsearchfiltergroup.md @@ -0,0 +1,9 @@ +# ContentSearchFilterGroup + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `combinator` | [Optional[models.FilterCombinator]](../models/filtercombinator.md) | :heavy_minus_sign: | N/A | +| `filters` | List[[models.ContentSearchFilter](../models/contentsearchfilter.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/contentsearchoperator.md b/docs/models/contentsearchoperator.md new file mode 100644 index 000000000..e7c699a70 --- /dev/null +++ b/docs/models/contentsearchoperator.md @@ -0,0 +1,14 @@ +# ContentSearchOperator + +## Example Usage + +```python +from mistralai.client.models import ContentSearchOperator +value: ContentSearchOperator = "contains" +``` + + +## Values + +- `"contains"` +- `"equals"` diff --git a/docs/models/createdatasetrecordv1observabilitydatasetsdatasetidrecordspostrequest.md b/docs/models/createdatasetrecordv1observabilitydatasetsdatasetidrecordspostrequest.md index 7fe42faac..8db3ea7f3 100644 --- a/docs/models/createdatasetrecordv1observabilitydatasetsdatasetidrecordspostrequest.md +++ b/docs/models/createdatasetrecordv1observabilitydatasetsdatasetidrecordspostrequest.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | -| `create_dataset_record_request` | [models.CreateDatasetRecordRequest](../models/createdatasetrecordrequest.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | +| `create_dataset_record_request` | [models.CreateDatasetRecordRequest](../models/createdatasetrecordrequest.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/credentialsresponse.md b/docs/models/credentialsresponse.md index 1c9a8596b..0cd5b336c 100644 --- a/docs/models/credentialsresponse.md +++ b/docs/models/credentialsresponse.md @@ -6,4 +6,4 @@ | Field | Type | Required | Description | | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | | `credentials` | List[[models.AuthenticationConfiguration](../models/authenticationconfiguration.md)] | :heavy_check_mark: | N/A | -| `connector_preset_credentials_for_auth` | List[[models.OutboundAuthenticationType](../models/outboundauthenticationtype.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file +| `connector_preset_credentials_for_auth` | List[[models.AuthenticationType](../models/authenticationtype.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/dataset.md b/docs/models/dataset.md index 9d2354338..33e175147 100644 --- a/docs/models/dataset.md +++ b/docs/models/dataset.md @@ -10,6 +10,7 @@ | `updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | | `deleted_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | | `name` | *str* | :heavy_check_mark: | N/A | +| `slug` | *str* | :heavy_check_mark: | N/A | | `description` | *str* | :heavy_check_mark: | N/A | | `owner_id` | *str* | :heavy_check_mark: | N/A | | `workspace_id` | *str* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/datasetpreview.md b/docs/models/datasetpreview.md index f729908d4..89f99abc3 100644 --- a/docs/models/datasetpreview.md +++ b/docs/models/datasetpreview.md @@ -10,6 +10,7 @@ | `updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | | `deleted_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | | `name` | *str* | :heavy_check_mark: | N/A | +| `slug` | *str* | :heavy_check_mark: | N/A | | `description` | *str* | :heavy_check_mark: | N/A | | `owner_id` | *str* | :heavy_check_mark: | N/A | | `workspace_id` | *str* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/deletedatasetv1observabilitydatasetsdatasetiddeleterequest.md b/docs/models/deletedatasetv1observabilitydatasetsdatasetiddeleterequest.md index 4557d3c60..81abd61f1 100644 --- a/docs/models/deletedatasetv1observabilitydatasetsdatasetiddeleterequest.md +++ b/docs/models/deletedatasetv1observabilitydatasetsdatasetiddeleterequest.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | \ No newline at end of file diff --git a/docs/models/direction.md b/docs/models/direction.md deleted file mode 100644 index 8e02b553f..000000000 --- a/docs/models/direction.md +++ /dev/null @@ -1,14 +0,0 @@ -# Direction - -## Example Usage - -```python -from mistralai.client.models import Direction -value: Direction = "asc" -``` - - -## Values - -- `"asc"` -- `"desc"` diff --git a/docs/models/evaluationrunfilterinput.md b/docs/models/evaluationrunfilterinput.md new file mode 100644 index 000000000..755d51af1 --- /dev/null +++ b/docs/models/evaluationrunfilterinput.md @@ -0,0 +1,17 @@ +# EvaluationRunFilterInput + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `run_ids` | List[*str*] | :heavy_minus_sign: | N/A | +| `evaluation_ids` | List[*str*] | :heavy_minus_sign: | N/A | +| `creator_ids` | List[*str*] | :heavy_minus_sign: | N/A | +| `project_ids` | List[*str*] | :heavy_minus_sign: | N/A | +| `ownership` | [OptionalNullable[models.RunOwnershipFilter]](../models/runownershipfilter.md) | :heavy_minus_sign: | N/A | +| `tags` | [OptionalNullable[models.TagFilter]](../models/tagfilter.md) | :heavy_minus_sign: | N/A | +| `score_filters` | [OptionalNullable[models.ScoreFilterGroup]](../models/scorefiltergroup.md) | :heavy_minus_sign: | N/A | +| `goal_filters` | [OptionalNullable[models.GoalStatusFilterGroup]](../models/goalstatusfiltergroup.md) | :heavy_minus_sign: | N/A | +| `system` | [OptionalNullable[models.SystemFilter]](../models/systemfilter.md) | :heavy_minus_sign: | N/A | +| `metadata` | [OptionalNullable[models.MetadataFilterGroup]](../models/metadatafiltergroup.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/evaluationrungenerationv2.md b/docs/models/evaluationrungenerationv2.md new file mode 100644 index 000000000..13a310168 --- /dev/null +++ b/docs/models/evaluationrungenerationv2.md @@ -0,0 +1,18 @@ +# EvaluationRunGenerationV2 + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `id` | *str* | :heavy_check_mark: | N/A | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `deleted_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `output` | *Nullable[Any]* | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_check_mark: | N/A | +| `status` | *str* | :heavy_check_mark: | N/A | +| `error` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `scores` | Dict[str, List[[models.EvaluationRunScoreV2](../models/evaluationrunscorev2.md)]] | :heavy_minus_sign: | N/A | +| `statistics` | Dict[str, [models.EvaluatorStatistics](../models/evaluatorstatistics.md)] | :heavy_minus_sign: | N/A | +| `goal_results` | Dict[str, [models.GoalResult](../models/goalresult.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/evaluationrunoutputrecordv2.md b/docs/models/evaluationrunoutputrecordv2.md new file mode 100644 index 000000000..0d2ebf07f --- /dev/null +++ b/docs/models/evaluationrunoutputrecordv2.md @@ -0,0 +1,16 @@ +# EvaluationRunOutputRecordV2 + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| `id` | *str* | :heavy_check_mark: | N/A | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `deleted_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_check_mark: | N/A | +| `record_info` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `generations` | List[[models.EvaluationRunGenerationV2](../models/evaluationrungenerationv2.md)] | :heavy_minus_sign: | N/A | +| `statistics` | Dict[str, [models.EvaluatorStatistics](../models/evaluatorstatistics.md)] | :heavy_minus_sign: | N/A | +| `goal_results` | Dict[str, [models.GoalResult](../models/goalresult.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/evaluationrunrecordfilterinput.md b/docs/models/evaluationrunrecordfilterinput.md new file mode 100644 index 000000000..35b9693c5 --- /dev/null +++ b/docs/models/evaluationrunrecordfilterinput.md @@ -0,0 +1,12 @@ +# EvaluationRunRecordFilterInput + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | +| `input_filters` | [OptionalNullable[models.ContentSearchFilterGroup]](../models/contentsearchfiltergroup.md) | :heavy_minus_sign: | N/A | +| `output_filters` | [OptionalNullable[models.ContentSearchFilterGroup]](../models/contentsearchfiltergroup.md) | :heavy_minus_sign: | N/A | +| `score_filters` | [OptionalNullable[models.ScoreFilterGroup]](../models/scorefiltergroup.md) | :heavy_minus_sign: | N/A | +| `goal_filters` | [OptionalNullable[models.GoalStatusFilterGroup]](../models/goalstatusfiltergroup.md) | :heavy_minus_sign: | N/A | +| `sort` | [OptionalNullable[models.Sort]](../models/sort.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/evaluationrunrecordv2response.md b/docs/models/evaluationrunrecordv2response.md new file mode 100644 index 000000000..3d471042f --- /dev/null +++ b/docs/models/evaluationrunrecordv2response.md @@ -0,0 +1,14 @@ +# EvaluationRunRecordV2Response + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `id` | *str* | :heavy_check_mark: | N/A | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `deleted_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `input` | *Any* | :heavy_check_mark: | N/A | +| `dataset_record_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `output_record` | [OptionalNullable[models.EvaluationRunOutputRecordV2]](../models/evaluationrunoutputrecordv2.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/evaluationrunscorev2.md b/docs/models/evaluationrunscorev2.md new file mode 100644 index 000000000..00a256209 --- /dev/null +++ b/docs/models/evaluationrunscorev2.md @@ -0,0 +1,16 @@ +# EvaluationRunScoreV2 + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `id` | *str* | :heavy_check_mark: | N/A | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `deleted_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `value` | *Nullable[Any]* | :heavy_check_mark: | N/A | +| `rationale` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_check_mark: | N/A | +| `status` | *str* | :heavy_check_mark: | N/A | +| `error` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/evaluationrunv2response.md b/docs/models/evaluationrunv2response.md new file mode 100644 index 000000000..db63a335c --- /dev/null +++ b/docs/models/evaluationrunv2response.md @@ -0,0 +1,29 @@ +# EvaluationRunV2Response + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `id` | *str* | :heavy_check_mark: | N/A | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `deleted_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `creator_id` | *str* | :heavy_check_mark: | N/A | +| `evaluation_id` | *str* | :heavy_check_mark: | N/A | +| `name` | *str* | :heavy_check_mark: | N/A | +| `description` | *Nullable[str]* | :heavy_check_mark: | N/A | +| `tags` | List[*str*] | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_check_mark: | N/A | +| `num_generations` | *int* | :heavy_check_mark: | N/A | +| `run_info` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `status` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `dataset_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `evaluators` | List[[models.EvaluatorV2](../models/evaluatorv2.md)] | :heavy_check_mark: | N/A | +| `run_evaluators` | List[[models.EvaluatorV2](../models/evaluatorv2.md)] | :heavy_minus_sign: | N/A | +| `system` | [OptionalNullable[models.SystemV2]](../models/systemv2.md) | :heavy_minus_sign: | N/A | +| `statistics` | Dict[str, [models.EvaluatorStatistics](../models/evaluatorstatistics.md)] | :heavy_minus_sign: | N/A | +| `goal_results` | Dict[str, [models.GoalResult](../models/goalresult.md)] | :heavy_minus_sign: | N/A | +| `passed` | *OptionalNullable[bool]* | :heavy_minus_sign: | N/A | +| `run_scores` | Dict[str, [models.EvaluationRunScoreV2](../models/evaluationrunscorev2.md)] | :heavy_minus_sign: | N/A | +| `optimization` | [OptionalNullable[models.RunOptimizationRef]](../models/runoptimizationref.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/evaluationrunv2withrefsresponse.md b/docs/models/evaluationrunv2withrefsresponse.md new file mode 100644 index 000000000..301a6600b --- /dev/null +++ b/docs/models/evaluationrunv2withrefsresponse.md @@ -0,0 +1,31 @@ +# EvaluationRunV2WithRefsResponse + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | +| `id` | *str* | :heavy_check_mark: | N/A | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `deleted_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `creator_id` | *str* | :heavy_check_mark: | N/A | +| `evaluation_id` | *str* | :heavy_check_mark: | N/A | +| `name` | *str* | :heavy_check_mark: | N/A | +| `description` | *Nullable[str]* | :heavy_check_mark: | N/A | +| `tags` | List[*str*] | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_check_mark: | N/A | +| `num_generations` | *int* | :heavy_check_mark: | N/A | +| `run_info` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `status` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `dataset_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `evaluators` | List[[models.EvaluatorV2](../models/evaluatorv2.md)] | :heavy_check_mark: | N/A | +| `run_evaluators` | List[[models.EvaluatorV2](../models/evaluatorv2.md)] | :heavy_minus_sign: | N/A | +| `system` | [OptionalNullable[models.SystemV2]](../models/systemv2.md) | :heavy_minus_sign: | N/A | +| `statistics` | Dict[str, [models.EvaluatorStatistics](../models/evaluatorstatistics.md)] | :heavy_minus_sign: | N/A | +| `goal_results` | Dict[str, [models.GoalResult](../models/goalresult.md)] | :heavy_minus_sign: | N/A | +| `passed` | *OptionalNullable[bool]* | :heavy_minus_sign: | N/A | +| `run_scores` | Dict[str, [models.EvaluationRunScoreV2](../models/evaluationrunscorev2.md)] | :heavy_minus_sign: | N/A | +| `optimization` | [OptionalNullable[models.RunOptimizationRef]](../models/runoptimizationref.md) | :heavy_minus_sign: | N/A | +| `evaluation` | [OptionalNullable[models.RunEvaluationSummary]](../models/runevaluationsummary.md) | :heavy_minus_sign: | N/A | +| `project` | [OptionalNullable[models.RunProjectSummary]](../models/runprojectsummary.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/evaluationsv2.md b/docs/models/evaluationsv2.md new file mode 100644 index 000000000..9816a46a2 --- /dev/null +++ b/docs/models/evaluationsv2.md @@ -0,0 +1,8 @@ +# EvaluationsV2 + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `evaluations` | [models.PaginatedResultEvaluationV2](../models/paginatedresultevaluationv2.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/evaluationv2.md b/docs/models/evaluationv2.md new file mode 100644 index 000000000..0b9a24e7f --- /dev/null +++ b/docs/models/evaluationv2.md @@ -0,0 +1,20 @@ +# EvaluationV2 + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `id` | *str* | :heavy_check_mark: | N/A | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `deleted_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `workspace_id` | *str* | :heavy_check_mark: | N/A | +| `creator_id` | *str* | :heavy_check_mark: | N/A | +| `project_id` | *str* | :heavy_check_mark: | N/A | +| `name` | *str* | :heavy_check_mark: | N/A | +| `slug` | *str* | :heavy_check_mark: | N/A | +| `description` | *Nullable[str]* | :heavy_check_mark: | N/A | +| `tags` | List[*str*] | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_check_mark: | N/A | +| `is_favorite` | *Optional[bool]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/evaluatorstatistics.md b/docs/models/evaluatorstatistics.md new file mode 100644 index 000000000..2361dfe46 --- /dev/null +++ b/docs/models/evaluatorstatistics.md @@ -0,0 +1,23 @@ +# EvaluatorStatistics + + +## Supported Types + +### `models.NumericStatistics` + +```python +value: models.NumericStatistics = /* values here */ +``` + +### `models.CategoricalStatistics` + +```python +value: models.CategoricalStatistics = /* values here */ +``` + +### `models.UnsupportedStatistics` + +```python +value: models.UnsupportedStatistics = /* values here */ +``` + diff --git a/docs/models/evaluatorv2.md b/docs/models/evaluatorv2.md new file mode 100644 index 000000000..1dd74b7e9 --- /dev/null +++ b/docs/models/evaluatorv2.md @@ -0,0 +1,22 @@ +# EvaluatorV2 + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | +| `id` | *str* | :heavy_check_mark: | N/A | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `deleted_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `name` | *str* | :heavy_check_mark: | N/A | +| `description` | *Nullable[str]* | :heavy_check_mark: | N/A | +| `tags` | List[*str*] | :heavy_check_mark: | N/A | +| `num_scores` | *int* | :heavy_check_mark: | N/A | +| `goal` | [OptionalNullable[models.GoalSpec]](../models/goalspec.md) | :heavy_minus_sign: | N/A | +| `aggregate_goal` | [OptionalNullable[models.GoalSpec]](../models/goalspec.md) | :heavy_minus_sign: | N/A | +| `statistics` | List[[models.Statistic](../models/statistic.md)] | :heavy_minus_sign: | N/A | +| `weight` | *Optional[float]* | :heavy_minus_sign: | N/A | +| `direction` | [OptionalNullable[models.EvaluatorV2Direction]](../models/evaluatorv2direction.md) | :heavy_minus_sign: | N/A | +| `min_value` | *OptionalNullable[float]* | :heavy_minus_sign: | N/A | +| `max_value` | *OptionalNullable[float]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/evaluatorv2direction.md b/docs/models/evaluatorv2direction.md new file mode 100644 index 000000000..67b222078 --- /dev/null +++ b/docs/models/evaluatorv2direction.md @@ -0,0 +1,18 @@ +# EvaluatorV2Direction + +## Example Usage + +```python +from mistralai.client.models import EvaluatorV2Direction + +# Open enum: unrecognized values are captured as UnrecognizedStr +value: EvaluatorV2Direction = "maximize" +``` + + +## Values + +This is an open enum. Unrecognized values will not fail type checks. + +- `"maximize"` +- `"minimize"` diff --git a/docs/models/exportdatasettojsonlv1observabilitydatasetsdatasetidexportstojsonlgetrequest.md b/docs/models/exportdatasettojsonlv1observabilitydatasetsdatasetidexportstojsonlgetrequest.md index efe4bbb05..7ae8408f6 100644 --- a/docs/models/exportdatasettojsonlv1observabilitydatasetsdatasetidexportstojsonlgetrequest.md +++ b/docs/models/exportdatasettojsonlv1observabilitydatasetsdatasetidexportstojsonlgetrequest.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | \ No newline at end of file diff --git a/docs/models/fieldsortinput.md b/docs/models/fieldsortinput.md new file mode 100644 index 000000000..a7974b7f9 --- /dev/null +++ b/docs/models/fieldsortinput.md @@ -0,0 +1,10 @@ +# FieldSortInput + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | +| `kind` | *Literal["field"]* | :heavy_check_mark: | N/A | +| `field` | [models.RecordSortField](../models/recordsortfield.md) | :heavy_check_mark: | N/A | +| `direction` | [Optional[models.SortDirection]](../models/sortdirection.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/filepurpose.md b/docs/models/filepurpose.md index af6dc9fa4..61c55641b 100644 --- a/docs/models/filepurpose.md +++ b/docs/models/filepurpose.md @@ -17,3 +17,4 @@ This is an open enum. Unrecognized values will not fail type checks. - `"fine-tune"` - `"batch"` - `"ocr"` +- `"agentic_safety"` diff --git a/docs/models/filtercombinator.md b/docs/models/filtercombinator.md new file mode 100644 index 000000000..42191cc0b --- /dev/null +++ b/docs/models/filtercombinator.md @@ -0,0 +1,14 @@ +# FilterCombinator + +## Example Usage + +```python +from mistralai.client.models import FilterCombinator +value: FilterCombinator = "and" +``` + + +## Values + +- `"and"` +- `"or"` diff --git a/docs/models/getdatasetbyidv1observabilitydatasetsdatasetidgetrequest.md b/docs/models/getdatasetbyidv1observabilitydatasetsdatasetidgetrequest.md index 60f2d162d..7a2938e8c 100644 --- a/docs/models/getdatasetbyidv1observabilitydatasetsdatasetidgetrequest.md +++ b/docs/models/getdatasetbyidv1observabilitydatasetsdatasetidgetrequest.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | \ No newline at end of file diff --git a/docs/models/getdatasetimporttasksv1observabilitydatasetsdatasetidtasksgetrequest.md b/docs/models/getdatasetimporttasksv1observabilitydatasetsdatasetidtasksgetrequest.md index d4226eca1..b580e8082 100644 --- a/docs/models/getdatasetimporttasksv1observabilitydatasetsdatasetidtasksgetrequest.md +++ b/docs/models/getdatasetimporttasksv1observabilitydatasetsdatasetidtasksgetrequest.md @@ -3,8 +3,8 @@ ## Fields -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | -| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | -| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/getdatasetimporttaskv1observabilitydatasetsdatasetidtaskstaskidgetrequest.md b/docs/models/getdatasetimporttaskv1observabilitydatasetsdatasetidtaskstaskidgetrequest.md index 98ffc3c62..c66458efc 100644 --- a/docs/models/getdatasetimporttaskv1observabilitydatasetsdatasetidtaskstaskidgetrequest.md +++ b/docs/models/getdatasetimporttaskv1observabilitydatasetsdatasetidtaskstaskidgetrequest.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | -| `task_id` | *str* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | +| `task_id` | *str* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/getdatasetrecordsv1observabilitydatasetsdatasetidrecordsgetrequest.md b/docs/models/getdatasetrecordsv1observabilitydatasetsdatasetidrecordsgetrequest.md index 82453f0c4..4b4edcecf 100644 --- a/docs/models/getdatasetrecordsv1observabilitydatasetsdatasetidrecordsgetrequest.md +++ b/docs/models/getdatasetrecordsv1observabilitydatasetsdatasetidrecordsgetrequest.md @@ -3,8 +3,8 @@ ## Fields -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | -| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | -| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/getevaluationrunrecordv2v1observabilityevaluationrunsv2runidrecordsrecordidgetrequest.md b/docs/models/getevaluationrunrecordv2v1observabilityevaluationrunsv2runidrecordsrecordidgetrequest.md new file mode 100644 index 000000000..d38e3f2b6 --- /dev/null +++ b/docs/models/getevaluationrunrecordv2v1observabilityevaluationrunsv2runidrecordsrecordidgetrequest.md @@ -0,0 +1,9 @@ +# GetEvaluationRunRecordV2V1ObservabilityEvaluationRunsV2RunIDRecordsRecordIDGetRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `run_id` | *str* | :heavy_check_mark: | N/A | +| `record_id` | *str* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/getevaluationrunv2v1observabilityevaluationrunsv2runidgetrequest.md b/docs/models/getevaluationrunv2v1observabilityevaluationrunsv2runidgetrequest.md new file mode 100644 index 000000000..392169e82 --- /dev/null +++ b/docs/models/getevaluationrunv2v1observabilityevaluationrunsv2runidgetrequest.md @@ -0,0 +1,8 @@ +# GetEvaluationRunV2V1ObservabilityEvaluationRunsV2RunIDGetRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `run_id` | *str* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/getevaluationv2v1observabilityevaluationsv2evaluationsluggetrequest.md b/docs/models/getevaluationv2v1observabilityevaluationsv2evaluationsluggetrequest.md new file mode 100644 index 000000000..09872a8af --- /dev/null +++ b/docs/models/getevaluationv2v1observabilityevaluationsv2evaluationsluggetrequest.md @@ -0,0 +1,8 @@ +# GetEvaluationV2V1ObservabilityEvaluationsV2EvaluationSlugGetRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `evaluation_slug` | *str* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/getoptimizationv1observabilityoptimizationsoptimizationidgetrequest.md b/docs/models/getoptimizationv1observabilityoptimizationsoptimizationidgetrequest.md new file mode 100644 index 000000000..d4ce239c9 --- /dev/null +++ b/docs/models/getoptimizationv1observabilityoptimizationsoptimizationidgetrequest.md @@ -0,0 +1,8 @@ +# GetOptimizationV1ObservabilityOptimizationsOptimizationIDGetRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `optimization_id` | *str* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/getprojectevaluationsv2v1observabilityprojectsprojectslugevaluationsv2getrequest.md b/docs/models/getprojectevaluationsv2v1observabilityprojectsprojectslugevaluationsv2getrequest.md new file mode 100644 index 000000000..5d6f89237 --- /dev/null +++ b/docs/models/getprojectevaluationsv2v1observabilityprojectsprojectslugevaluationsv2getrequest.md @@ -0,0 +1,10 @@ +# GetProjectEvaluationsV2V1ObservabilityProjectsProjectSlugEvaluationsV2GetRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `project_slug` | *str* | :heavy_check_mark: | N/A | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/getprojectsv1observabilityprojectsgetrequest.md b/docs/models/getprojectsv1observabilityprojectsgetrequest.md new file mode 100644 index 000000000..722eee71f --- /dev/null +++ b/docs/models/getprojectsv1observabilityprojectsgetrequest.md @@ -0,0 +1,10 @@ +# GetProjectsV1ObservabilityProjectsGetRequest + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | +| `q` | *OptionalNullable[str]* | :heavy_minus_sign: | Case-insensitive filter on project name/slug. | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/getprojectv1observabilityprojectsprojectsluggetrequest.md b/docs/models/getprojectv1observabilityprojectsprojectsluggetrequest.md new file mode 100644 index 000000000..9522e16de --- /dev/null +++ b/docs/models/getprojectv1observabilityprojectsprojectsluggetrequest.md @@ -0,0 +1,8 @@ +# GetProjectV1ObservabilityProjectsProjectSlugGetRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `project_slug` | *str* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/getsingleevaluationrunstatisticsv2v1observabilityevaluationrunsv2runidstatisticsgetrequest.md b/docs/models/getsingleevaluationrunstatisticsv2v1observabilityevaluationrunsv2runidstatisticsgetrequest.md new file mode 100644 index 000000000..d9fb6c41d --- /dev/null +++ b/docs/models/getsingleevaluationrunstatisticsv2v1observabilityevaluationrunsv2runidstatisticsgetrequest.md @@ -0,0 +1,8 @@ +# GetSingleEvaluationRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsGetRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `run_id` | *str* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/getworkflowregistrationsv1workflowsregistrationsgetrequest.md b/docs/models/getworkflowregistrationsv1workflowsregistrationsgetrequest.md index ee53e5a25..11ed099b3 100644 --- a/docs/models/getworkflowregistrationsv1workflowsregistrationsgetrequest.md +++ b/docs/models/getworkflowregistrationsv1workflowsregistrationsgetrequest.md @@ -9,6 +9,7 @@ | `task_queue` | *OptionalNullable[str]* | :heavy_minus_sign: | The task queue to filter by | | `active_only` | *Optional[bool]* | :heavy_minus_sign: | Whether to only return active workflows versions | | `include_shared` | *Optional[bool]* | :heavy_minus_sign: | Whether to include shared workflow versions | +| `workflow_name` | *OptionalNullable[str]* | :heavy_minus_sign: | Exact workflow name to filter by | | `workflow_search` | *OptionalNullable[str]* | :heavy_minus_sign: | The workflow name to filter by | | `archived` | *OptionalNullable[bool]* | :heavy_minus_sign: | Filter by archived state. False=exclude archived, True=only archived, None=include all | | `with_workflow` | *Optional[bool]* | :heavy_minus_sign: | Whether to include the workflow definition | diff --git a/docs/models/goalresult.md b/docs/models/goalresult.md new file mode 100644 index 000000000..cb507c3a1 --- /dev/null +++ b/docs/models/goalresult.md @@ -0,0 +1,9 @@ +# GoalResult + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | +| `passed` | *Nullable[bool]* | :heavy_check_mark: | N/A | +| `results` | List[[models.GoalResultItem](../models/goalresultitem.md)] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/goalresultitem.md b/docs/models/goalresultitem.md new file mode 100644 index 000000000..11728ab75 --- /dev/null +++ b/docs/models/goalresultitem.md @@ -0,0 +1,15 @@ +# GoalResultItem + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `metric` | *str* | :heavy_check_mark: | N/A | +| `operator` | *str* | :heavy_check_mark: | N/A | +| `target` | *OptionalNullable[float]* | :heavy_minus_sign: | N/A | +| `target_min` | *OptionalNullable[float]* | :heavy_minus_sign: | N/A | +| `target_max` | *OptionalNullable[float]* | :heavy_minus_sign: | N/A | +| `actual` | *float* | :heavy_check_mark: | N/A | +| `passed` | *bool* | :heavy_check_mark: | N/A | +| `direction` | [OptionalNullable[models.GoalResultItemDirection]](../models/goalresultitemdirection.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/goalresultitemdirection.md b/docs/models/goalresultitemdirection.md new file mode 100644 index 000000000..e7e0e76e2 --- /dev/null +++ b/docs/models/goalresultitemdirection.md @@ -0,0 +1,18 @@ +# GoalResultItemDirection + +## Example Usage + +```python +from mistralai.client.models import GoalResultItemDirection + +# Open enum: unrecognized values are captured as UnrecognizedStr +value: GoalResultItemDirection = "higher_is_better" +``` + + +## Values + +This is an open enum. Unrecognized values will not fail type checks. + +- `"higher_is_better"` +- `"lower_is_better"` diff --git a/docs/models/goalspec.md b/docs/models/goalspec.md new file mode 100644 index 000000000..cefd250c8 --- /dev/null +++ b/docs/models/goalspec.md @@ -0,0 +1,13 @@ +# GoalSpec + + +## Fields + +| Field | Type | Required | Description | +| ------------------------- | ------------------------- | ------------------------- | ------------------------- | +| `operator` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `value` | *OptionalNullable[Any]* | :heavy_minus_sign: | N/A | +| `min` | *OptionalNullable[float]* | :heavy_minus_sign: | N/A | +| `max` | *OptionalNullable[float]* | :heavy_minus_sign: | N/A | +| `values` | List[*Any*] | :heavy_minus_sign: | N/A | +| `metric` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/goalstatus.md b/docs/models/goalstatus.md new file mode 100644 index 000000000..f174cea4e --- /dev/null +++ b/docs/models/goalstatus.md @@ -0,0 +1,15 @@ +# GoalStatus + +## Example Usage + +```python +from mistralai.client.models import GoalStatus +value: GoalStatus = "passed" +``` + + +## Values + +- `"passed"` +- `"failed"` +- `"not_evaluated"` diff --git a/docs/models/goalstatusfilter.md b/docs/models/goalstatusfilter.md new file mode 100644 index 000000000..cea68ef34 --- /dev/null +++ b/docs/models/goalstatusfilter.md @@ -0,0 +1,9 @@ +# GoalStatusFilter + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `evaluator_name` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `values` | List[[models.GoalStatus](../models/goalstatus.md)] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/goalstatusfiltergroup.md b/docs/models/goalstatusfiltergroup.md new file mode 100644 index 000000000..54a05c7d3 --- /dev/null +++ b/docs/models/goalstatusfiltergroup.md @@ -0,0 +1,9 @@ +# GoalStatusFilterGroup + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `combinator` | [Optional[models.FilterCombinator]](../models/filtercombinator.md) | :heavy_minus_sign: | N/A | +| `filters` | List[[models.GoalStatusFilter](../models/goalstatusfilter.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/httpconnector.md b/docs/models/httpconnector.md index c1868c224..dae9431e9 100644 --- a/docs/models/httpconnector.md +++ b/docs/models/httpconnector.md @@ -30,7 +30,6 @@ | `mistral` | *Optional[bool]* | :heavy_minus_sign: | N/A | | `is_authenticated` | *OptionalNullable[bool]* | :heavy_minus_sign: | N/A | | `tools` | List[[models.ConnectorTool](../models/connectortool.md)] | :heavy_minus_sign: | N/A | -| `system_prompt_route` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `connection_config` | [OptionalNullable[models.PublicConnectionConfig]](../models/publicconnectionconfig.md) | :heavy_minus_sign: | N/A | | `execution_env` | [OptionalNullable[models.PublicExecutionEnv]](../models/publicexecutionenv.md) | :heavy_minus_sign: | N/A | | `protocol` | *Literal["http"]* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/inboundauthenticationtype.md b/docs/models/inboundauthenticationtype.md deleted file mode 100644 index ea04329c0..000000000 --- a/docs/models/inboundauthenticationtype.md +++ /dev/null @@ -1,13 +0,0 @@ -# InboundAuthenticationType - -## Example Usage - -```python -from mistralai.client.models import InboundAuthenticationType -value: InboundAuthenticationType = "webhook" -``` - - -## Values - -- `"webhook"` diff --git a/docs/models/ipaphoneme.md b/docs/models/ipaphoneme.md new file mode 100644 index 000000000..c2a0fcb4f --- /dev/null +++ b/docs/models/ipaphoneme.md @@ -0,0 +1,69 @@ +# IPAPhoneme + +The IPA phone inventory usable in pronunciation hints. + +``StrEnum`` members' values are their (lowercase) names via ``auto()``, so each member IS +the IPA string it represents. Using an enum makes ``phoneme_hints`` values self-validating +at the API boundary (pydantic rejects any phone outside this set). **Append-only**: never +reorder or remove entries, only add new phones (e.g. for future languages) at the end. + +## Example Usage + +```python +from mistralai.client.models import IPAPhoneme +value: IPAPhoneme = "a" +``` + + +## Values + +- `"a"` +- `"aɪ"` +- `"aʊ"` +- `"b"` +- `"d"` +- `"dʒ"` +- `"e"` +- `"eɪ"` +- `"f"` +- `"g"` +- `"h"` +- `"i"` +- `"j"` +- `"k"` +- `"l"` +- `"m"` +- `"n"` +- `"o"` +- `"oʊ"` +- `"p"` +- `"s"` +- `"t"` +- `"tʃ"` +- `"u"` +- `"v"` +- `"w"` +- `"z"` +- `"æ"` +- `"ð"` +- `"ŋ"` +- `"ɑ"` +- `"ɔ"` +- `"ɔɪ"` +- `"ɖ"` +- `"ə"` +- `"ɚ"` +- `"ɛ"` +- `"ɜ"` +- `"ɪ"` +- `"ɱ"` +- `"ɹ"` +- `"ɾ"` +- `"ʃ"` +- `"ʈ"` +- `"ʊ"` +- `"ʋ"` +- `"ʌ"` +- `"ʒ"` +- `"ʔ"` +- `"θ"` diff --git a/docs/models/listevaluationrunrecordsresponse.md b/docs/models/listevaluationrunrecordsresponse.md new file mode 100644 index 000000000..d84a0002f --- /dev/null +++ b/docs/models/listevaluationrunrecordsresponse.md @@ -0,0 +1,8 @@ +# ListEvaluationRunRecordsResponse + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| `records` | [models.PaginatedResultEvaluationRunRecordV2Response](../models/paginatedresultevaluationrunrecordv2response.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/listevaluationrunsresponse.md b/docs/models/listevaluationrunsresponse.md new file mode 100644 index 000000000..2e3907cdd --- /dev/null +++ b/docs/models/listevaluationrunsresponse.md @@ -0,0 +1,8 @@ +# ListEvaluationRunsResponse + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `runs` | [models.PaginatedResultEvaluationRunV2Response](../models/paginatedresultevaluationrunv2response.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/listoptimizationsresponse.md b/docs/models/listoptimizationsresponse.md new file mode 100644 index 000000000..698049ba5 --- /dev/null +++ b/docs/models/listoptimizationsresponse.md @@ -0,0 +1,8 @@ +# ListOptimizationsResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `optimizations` | [models.PaginatedResultOptimization](../models/paginatedresultoptimization.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/listoptimizationsv1observabilityoptimizationsgetrequest.md b/docs/models/listoptimizationsv1observabilityoptimizationsgetrequest.md new file mode 100644 index 000000000..525eb8651 --- /dev/null +++ b/docs/models/listoptimizationsv1observabilityoptimizationsgetrequest.md @@ -0,0 +1,14 @@ +# ListOptimizationsV1ObservabilityOptimizationsGetRequest + + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `project` | *OptionalNullable[str]* | :heavy_minus_sign: | Filter by project slug | +| `evaluation` | *OptionalNullable[str]* | :heavy_minus_sign: | Filter by evaluation slug | +| `status` | *OptionalNullable[str]* | :heavy_minus_sign: | Filter by lifecycle status | +| `algorithm` | *OptionalNullable[str]* | :heavy_minus_sign: | Filter by algorithm | +| `tags` | List[*str*] | :heavy_minus_sign: | Filter by tags | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/listoptimizationtrialsresponse.md b/docs/models/listoptimizationtrialsresponse.md new file mode 100644 index 000000000..b7ca51586 --- /dev/null +++ b/docs/models/listoptimizationtrialsresponse.md @@ -0,0 +1,8 @@ +# ListOptimizationTrialsResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `trials` | [models.PaginatedResultOptimizationTrialWithObservations](../models/paginatedresultoptimizationtrialwithobservations.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/listoptimizationtrialsv1observabilityoptimizationsoptimizationidtrialsgetrequest.md b/docs/models/listoptimizationtrialsv1observabilityoptimizationsoptimizationidtrialsgetrequest.md new file mode 100644 index 000000000..1a047523a --- /dev/null +++ b/docs/models/listoptimizationtrialsv1observabilityoptimizationsoptimizationidtrialsgetrequest.md @@ -0,0 +1,10 @@ +# ListOptimizationTrialsV1ObservabilityOptimizationsOptimizationIDTrialsGetRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `optimization_id` | *str* | :heavy_check_mark: | N/A | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/mcpconnector.md b/docs/models/mcpconnector.md index 17180c0b6..d8bcc37a8 100644 --- a/docs/models/mcpconnector.md +++ b/docs/models/mcpconnector.md @@ -30,7 +30,6 @@ | `mistral` | *Optional[bool]* | :heavy_minus_sign: | N/A | | `is_authenticated` | *OptionalNullable[bool]* | :heavy_minus_sign: | N/A | | `tools` | List[[models.ConnectorTool](../models/connectortool.md)] | :heavy_minus_sign: | N/A | -| `system_prompt_route` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `connection_config` | [OptionalNullable[models.PublicConnectionConfig]](../models/publicconnectionconfig.md) | :heavy_minus_sign: | N/A | | `execution_env` | [OptionalNullable[models.PublicExecutionEnv]](../models/publicexecutionenv.md) | :heavy_minus_sign: | N/A | | `protocol` | *Literal["mcp"]* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/metadata.md b/docs/models/metadata.md new file mode 100644 index 000000000..62a4f6d63 --- /dev/null +++ b/docs/models/metadata.md @@ -0,0 +1,29 @@ +# Metadata + + +## Supported Types + +### `str` + +```python +value: str = /* values here */ +``` + +### `int` + +```python +value: int = /* values here */ +``` + +### `float` + +```python +value: float = /* values here */ +``` + +### `bool` + +```python +value: bool = /* values here */ +``` + diff --git a/docs/models/metadatafilter.md b/docs/models/metadatafilter.md new file mode 100644 index 000000000..921abbf02 --- /dev/null +++ b/docs/models/metadatafilter.md @@ -0,0 +1,10 @@ +# MetadataFilter + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `key` | *str* | :heavy_check_mark: | N/A | +| `operator` | [models.SystemParamOperator](../models/systemparamoperator.md) | :heavy_check_mark: | N/A | +| `value` | [models.MetadataFilterValue](../models/metadatafiltervalue.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/metadatafiltergroup.md b/docs/models/metadatafiltergroup.md new file mode 100644 index 000000000..ccf49589f --- /dev/null +++ b/docs/models/metadatafiltergroup.md @@ -0,0 +1,9 @@ +# MetadataFilterGroup + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `combinator` | [Optional[models.FilterCombinator]](../models/filtercombinator.md) | :heavy_minus_sign: | N/A | +| `filters` | List[[models.MetadataFilter](../models/metadatafilter.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/metadatafiltervalue.md b/docs/models/metadatafiltervalue.md new file mode 100644 index 000000000..58ad59b09 --- /dev/null +++ b/docs/models/metadatafiltervalue.md @@ -0,0 +1,23 @@ +# MetadataFilterValue + + +## Supported Types + +### `float` + +```python +value: float = /* values here */ +``` + +### `str` + +```python +value: str = /* values here */ +``` + +### `bool` + +```python +value: bool = /* values here */ +``` + diff --git a/docs/models/methodtype.md b/docs/models/methodtype.md deleted file mode 100644 index 7628bbdd4..000000000 --- a/docs/models/methodtype.md +++ /dev/null @@ -1,19 +0,0 @@ -# MethodType - -The type of authentication method (e.g. oauth2, bearer, none). - - -## Supported Types - -### `models.OutboundAuthenticationType` - -```python -value: models.OutboundAuthenticationType = /* values here */ -``` - -### `models.InboundAuthenticationType` - -```python -value: models.InboundAuthenticationType = /* values here */ -``` - diff --git a/docs/models/numericscoremetric.md b/docs/models/numericscoremetric.md new file mode 100644 index 000000000..0b7be0a6e --- /dev/null +++ b/docs/models/numericscoremetric.md @@ -0,0 +1,16 @@ +# NumericScoreMetric + +## Example Usage + +```python +from mistralai.client.models import NumericScoreMetric +value: NumericScoreMetric = "avg" +``` + + +## Values + +- `"avg"` +- `"min"` +- `"max"` +- `"std"` diff --git a/docs/models/numericstatistics.md b/docs/models/numericstatistics.md new file mode 100644 index 000000000..e26b05160 --- /dev/null +++ b/docs/models/numericstatistics.md @@ -0,0 +1,15 @@ +# NumericStatistics + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | +| `type` | *Optional[Literal["numeric"]]* | :heavy_minus_sign: | N/A | +| `values` | List[[models.ScalarStatisticValue](../models/scalarstatisticvalue.md)] | :heavy_minus_sign: | N/A | +| `sample_count` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `avg` | *OptionalNullable[float]* | :heavy_minus_sign: | N/A | +| `min` | *OptionalNullable[float]* | :heavy_minus_sign: | N/A | +| `max` | *OptionalNullable[float]* | :heavy_minus_sign: | N/A | +| `std` | *OptionalNullable[float]* | :heavy_minus_sign: | N/A | +| `count` | *Optional[int]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/oauth2authorizationcodeauthmethod.md b/docs/models/oauth2authorizationcodeauthmethod.md index f989151cc..898b8472b 100644 --- a/docs/models/oauth2authorizationcodeauthmethod.md +++ b/docs/models/oauth2authorizationcodeauthmethod.md @@ -3,10 +3,10 @@ ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `method_type` | *Optional[Literal["oauth2"]]* | :heavy_minus_sign: | N/A | -| `oauth2_server_metadata` | [models.ExtendedOAuthServerMetadata](../models/extendedoauthservermetadata.md) | :heavy_check_mark: | Custom superset of RFC 8414 OAuth 2.0 Authorization Server Metadata.

Stored at connector creation time (provided for HTTP connectors, discovered via .well-known for MCP).
Mirrors the shape of .well-known/oauth-authorization-server responses. | -| `headers` | List[[models.ConnectorAuthenticationHeader](../models/connectorauthenticationheader.md)] | :heavy_minus_sign: | Optional headers sent with requests for this auth method. | -| `grant_type` | *Literal["authorization_code"]* | :heavy_check_mark: | N/A | -| `auth_data` | [models.AuthData](../models/authdata.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `method_type` | *Optional[Literal["oauth2"]]* | :heavy_minus_sign: | N/A | +| `headers` | List[[models.ConnectorAuthenticationHeader](../models/connectorauthenticationheader.md)] | :heavy_minus_sign: | Optional headers sent with requests for this auth method. | +| `grant_type` | *Literal["authorization_code"]* | :heavy_check_mark: | N/A | +| `auth_data` | [models.AuthData](../models/authdata.md) | :heavy_check_mark: | N/A | +| `oauth2_server_metadata` | [OptionalNullable[models.ExtendedOAuthServerMetadata]](../models/extendedoauthservermetadata.md) | :heavy_minus_sign: | OAuth2 authorization server metadata (endpoints, scopes_supported, ...). | \ No newline at end of file diff --git a/docs/models/oauth2clientcredentialsauthmethod.md b/docs/models/oauth2clientcredentialsauthmethod.md index 47ec9edd3..de804f99e 100644 --- a/docs/models/oauth2clientcredentialsauthmethod.md +++ b/docs/models/oauth2clientcredentialsauthmethod.md @@ -6,7 +6,7 @@ | Field | Type | Required | Description | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `method_type` | *Optional[Literal["oauth2"]]* | :heavy_minus_sign: | N/A | -| `oauth2_server_metadata` | [models.ExtendedOAuthServerMetadata](../models/extendedoauthservermetadata.md) | :heavy_check_mark: | Custom superset of RFC 8414 OAuth 2.0 Authorization Server Metadata.

Stored at connector creation time (provided for HTTP connectors, discovered via .well-known for MCP).
Mirrors the shape of .well-known/oauth-authorization-server responses. | | `headers` | List[[models.ConnectorAuthenticationHeader](../models/connectorauthenticationheader.md)] | :heavy_minus_sign: | Optional headers sent with requests for this auth method. | | `grant_type` | *Literal["client_credentials"]* | :heavy_check_mark: | N/A | -| `token_endpoint_auth_method` | [models.OAuth2TokenEndpointAuthMethod](../models/oauth2tokenendpointauthmethod.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| `token_endpoint_auth_method` | [models.OAuth2TokenEndpointAuthMethod](../models/oauth2tokenendpointauthmethod.md) | :heavy_check_mark: | N/A | +| `oauth2_server_metadata` | [models.ExtendedOAuthServerMetadata](../models/extendedoauthservermetadata.md) | :heavy_check_mark: | Custom superset of RFC 8414 OAuth 2.0 Authorization Server Metadata.

Stored at connector creation time (provided for HTTP connectors, discovered via .well-known for MCP).
Mirrors the shape of .well-known/oauth-authorization-server responses. | \ No newline at end of file diff --git a/docs/models/observabilityerrorcode.md b/docs/models/observabilityerrorcode.md index 678d38861..314a51635 100644 --- a/docs/models/observabilityerrorcode.md +++ b/docs/models/observabilityerrorcode.md @@ -51,6 +51,7 @@ This is an open enum. Unrecognized values will not fail type checks. - `"EVALUATION_RUN_OUTPUT_RECORD_CONFLICT"` - `"TEMPLATE_ERROR"` - `"TEMPLATE_SYNTAX_ERROR"` +- `"PROJECT_NOT_FOUND"` - `"PROJECT_NAME_ALREADY_EXISTS"` - `"PIPELINE_CONFIG_NOT_FOUND"` - `"PIPELINE_CONFIG_ALREADY_EXISTS"` @@ -60,6 +61,7 @@ This is an open enum. Unrecognized values will not fail type checks. - `"SCORER_ALREADY_EXISTS"` - `"SCORER_CONFIG_KIND_MISMATCH"` - `"EVALUATION_NAME_ALREADY_EXISTS"` +- `"OPTIMIZATION_NOT_FOUND"` - `"OPTIMIZATION_TRIAL_KEY_ALREADY_EXISTS"` - `"TRACES_FILTER_QUERY_PARSE_ERROR"` - `"TRACE_NOT_FOUND"` diff --git a/docs/models/optimization.md b/docs/models/optimization.md new file mode 100644 index 000000000..0bbefba3d --- /dev/null +++ b/docs/models/optimization.md @@ -0,0 +1,25 @@ +# Optimization + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `id` | *str* | :heavy_check_mark: | N/A | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `deleted_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `creator_id` | *str* | :heavy_check_mark: | N/A | +| `project_id` | *str* | :heavy_check_mark: | N/A | +| `evaluation_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `name` | *str* | :heavy_check_mark: | N/A | +| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `steer` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `tags` | List[*str*] | :heavy_minus_sign: | N/A | +| `algorithm` | *str* | :heavy_check_mark: | N/A | +| `status` | *str* | :heavy_check_mark: | N/A | +| `source` | *str* | :heavy_check_mark: | N/A | +| `workflow_execution_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `workflow_run_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `objective_spec` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `outcome` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/optimizationdetail.md b/docs/models/optimizationdetail.md new file mode 100644 index 000000000..d41df79a1 --- /dev/null +++ b/docs/models/optimizationdetail.md @@ -0,0 +1,27 @@ +# OptimizationDetail + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `id` | *str* | :heavy_check_mark: | N/A | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `deleted_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `creator_id` | *str* | :heavy_check_mark: | N/A | +| `project_id` | *str* | :heavy_check_mark: | N/A | +| `evaluation_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `name` | *str* | :heavy_check_mark: | N/A | +| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `steer` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `tags` | List[*str*] | :heavy_minus_sign: | N/A | +| `algorithm` | *str* | :heavy_check_mark: | N/A | +| `status` | *str* | :heavy_check_mark: | N/A | +| `source` | *str* | :heavy_check_mark: | N/A | +| `workflow_execution_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `workflow_run_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `objective_spec` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `outcome` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `evaluation` | [OptionalNullable[models.OptimizationReference]](../models/optimizationreference.md) | :heavy_minus_sign: | N/A | +| `project` | [OptionalNullable[models.OptimizationReference]](../models/optimizationreference.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/optimizationreference.md b/docs/models/optimizationreference.md new file mode 100644 index 000000000..b067ee5e0 --- /dev/null +++ b/docs/models/optimizationreference.md @@ -0,0 +1,10 @@ +# OptimizationReference + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `id` | *str* | :heavy_check_mark: | N/A | +| `slug` | *str* | :heavy_check_mark: | N/A | +| `name` | *str* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/optimizationtrialobservation.md b/docs/models/optimizationtrialobservation.md new file mode 100644 index 000000000..291a09746 --- /dev/null +++ b/docs/models/optimizationtrialobservation.md @@ -0,0 +1,11 @@ +# OptimizationTrialObservation + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | +| `observation_type` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `score` | *OptionalNullable[float]* | :heavy_minus_sign: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `run` | [models.EvaluationRunV2Response](../models/evaluationrunv2response.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/optimizationtrialwithobservations.md b/docs/models/optimizationtrialwithobservations.md new file mode 100644 index 000000000..74a790a84 --- /dev/null +++ b/docs/models/optimizationtrialwithobservations.md @@ -0,0 +1,19 @@ +# OptimizationTrialWithObservations + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `id` | *str* | :heavy_check_mark: | N/A | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `deleted_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `optimization_id` | *str* | :heavy_check_mark: | N/A | +| `algorithm_trial_key` | *str* | :heavy_check_mark: | N/A | +| `status` | *str* | :heavy_check_mark: | N/A | +| `parent_trial_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `hypothesis` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `resolution` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_check_mark: | N/A | +| `observations` | List[[models.OptimizationTrialObservation](../models/optimizationtrialobservation.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/orderbyclause.md b/docs/models/orderbyclause.md index 4d9604b07..5f2f03833 100644 --- a/docs/models/orderbyclause.md +++ b/docs/models/orderbyclause.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | -| `field` | *str* | :heavy_check_mark: | N/A | -| `direction` | [Optional[models.Direction]](../models/direction.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `field` | *str* | :heavy_check_mark: | N/A | +| `direction` | [Optional[models.OrderByClauseDirection]](../models/orderbyclausedirection.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/orderbyclausedirection.md b/docs/models/orderbyclausedirection.md new file mode 100644 index 000000000..a1bac936e --- /dev/null +++ b/docs/models/orderbyclausedirection.md @@ -0,0 +1,14 @@ +# OrderByClauseDirection + +## Example Usage + +```python +from mistralai.client.models import OrderByClauseDirection +value: OrderByClauseDirection = "asc" +``` + + +## Values + +- `"asc"` +- `"desc"` diff --git a/docs/models/paginatedresultevaluationrunrecordv2response.md b/docs/models/paginatedresultevaluationrunrecordv2response.md new file mode 100644 index 000000000..51e728174 --- /dev/null +++ b/docs/models/paginatedresultevaluationrunrecordv2response.md @@ -0,0 +1,11 @@ +# PaginatedResultEvaluationRunRecordV2Response + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `results` | List[[models.EvaluationRunRecordV2Response](../models/evaluationrunrecordv2response.md)] | :heavy_minus_sign: | N/A | +| `count` | *int* | :heavy_check_mark: | N/A | +| `next` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `previous` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/paginatedresultevaluationrunv2response.md b/docs/models/paginatedresultevaluationrunv2response.md new file mode 100644 index 000000000..aacd748c0 --- /dev/null +++ b/docs/models/paginatedresultevaluationrunv2response.md @@ -0,0 +1,11 @@ +# PaginatedResultEvaluationRunV2Response + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `results` | List[[models.EvaluationRunV2Response](../models/evaluationrunv2response.md)] | :heavy_minus_sign: | N/A | +| `count` | *int* | :heavy_check_mark: | N/A | +| `next` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `previous` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/paginatedresultevaluationrunv2withrefsresponse.md b/docs/models/paginatedresultevaluationrunv2withrefsresponse.md new file mode 100644 index 000000000..86a14461d --- /dev/null +++ b/docs/models/paginatedresultevaluationrunv2withrefsresponse.md @@ -0,0 +1,11 @@ +# PaginatedResultEvaluationRunV2WithRefsResponse + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `results` | List[[models.EvaluationRunV2WithRefsResponse](../models/evaluationrunv2withrefsresponse.md)] | :heavy_minus_sign: | N/A | +| `count` | *int* | :heavy_check_mark: | N/A | +| `next` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `previous` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/paginatedresultevaluationv2.md b/docs/models/paginatedresultevaluationv2.md new file mode 100644 index 000000000..5a8e6faeb --- /dev/null +++ b/docs/models/paginatedresultevaluationv2.md @@ -0,0 +1,11 @@ +# PaginatedResultEvaluationV2 + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | +| `results` | List[[models.EvaluationV2](../models/evaluationv2.md)] | :heavy_minus_sign: | N/A | +| `count` | *int* | :heavy_check_mark: | N/A | +| `next` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `previous` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/paginatedresultoptimization.md b/docs/models/paginatedresultoptimization.md new file mode 100644 index 000000000..f7c8e35e5 --- /dev/null +++ b/docs/models/paginatedresultoptimization.md @@ -0,0 +1,11 @@ +# PaginatedResultOptimization + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | +| `results` | List[[models.Optimization](../models/optimization.md)] | :heavy_minus_sign: | N/A | +| `count` | *int* | :heavy_check_mark: | N/A | +| `next` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `previous` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/paginatedresultoptimizationtrialwithobservations.md b/docs/models/paginatedresultoptimizationtrialwithobservations.md new file mode 100644 index 000000000..2ff8ffdf1 --- /dev/null +++ b/docs/models/paginatedresultoptimizationtrialwithobservations.md @@ -0,0 +1,11 @@ +# PaginatedResultOptimizationTrialWithObservations + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `results` | List[[models.OptimizationTrialWithObservations](../models/optimizationtrialwithobservations.md)] | :heavy_minus_sign: | N/A | +| `count` | *int* | :heavy_check_mark: | N/A | +| `next` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `previous` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/paginatedresultproject.md b/docs/models/paginatedresultproject.md new file mode 100644 index 000000000..400938484 --- /dev/null +++ b/docs/models/paginatedresultproject.md @@ -0,0 +1,11 @@ +# PaginatedResultProject + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | +| `results` | List[[models.Project](../models/project.md)] | :heavy_minus_sign: | N/A | +| `count` | *int* | :heavy_check_mark: | N/A | +| `next` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `previous` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/params.md b/docs/models/params.md new file mode 100644 index 000000000..77b9f30f6 --- /dev/null +++ b/docs/models/params.md @@ -0,0 +1,29 @@ +# Params + + +## Supported Types + +### `str` + +```python +value: str = /* values here */ +``` + +### `int` + +```python +value: int = /* values here */ +``` + +### `float` + +```python +value: float = /* values here */ +``` + +### `bool` + +```python +value: bool = /* values here */ +``` + diff --git a/docs/models/percentile.md b/docs/models/percentile.md new file mode 100644 index 000000000..7bdd05b7a --- /dev/null +++ b/docs/models/percentile.md @@ -0,0 +1,17 @@ +# Percentile + + +## Supported Types + +### `float` + +```python +value: float = /* values here */ +``` + +### `int` + +```python +value: int = /* values here */ +``` + diff --git a/docs/models/percentilestatisticspec.md b/docs/models/percentilestatisticspec.md new file mode 100644 index 000000000..611e0abf1 --- /dev/null +++ b/docs/models/percentilestatisticspec.md @@ -0,0 +1,12 @@ +# PercentileStatisticSpec + +The ``p``-th percentile (``0 <= p <= 100``), computed with the type-7 algorithm. + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | +| `kind` | *Literal["percentile"]* | :heavy_check_mark: | N/A | +| `percentile` | [models.Percentile](../models/percentile.md) | :heavy_check_mark: | N/A | +| `goal` | [OptionalNullable[models.GoalSpec]](../models/goalspec.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/postdatasetrecordsfromdatasetv1observabilitydatasetsdatasetidimportsfromdatasetpostrequest.md b/docs/models/postdatasetrecordsfromdatasetv1observabilitydatasetsdatasetidimportsfromdatasetpostrequest.md index 33dafda2e..860afff81 100644 --- a/docs/models/postdatasetrecordsfromdatasetv1observabilitydatasetsdatasetidimportsfromdatasetpostrequest.md +++ b/docs/models/postdatasetrecordsfromdatasetv1observabilitydatasetsdatasetidimportsfromdatasetpostrequest.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | -| `import_dataset_from_dataset_request` | [models.ImportDatasetFromDatasetRequest](../models/importdatasetfromdatasetrequest.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | +| `import_dataset_from_dataset_request` | [models.ImportDatasetFromDatasetRequest](../models/importdatasetfromdatasetrequest.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/postdatasetrecordsfromfilev1observabilitydatasetsdatasetidimportsfromfilepostrequest.md b/docs/models/postdatasetrecordsfromfilev1observabilitydatasetsdatasetidimportsfromfilepostrequest.md index 0bff196b5..1e083c433 100644 --- a/docs/models/postdatasetrecordsfromfilev1observabilitydatasetsdatasetidimportsfromfilepostrequest.md +++ b/docs/models/postdatasetrecordsfromfilev1observabilitydatasetsdatasetidimportsfromfilepostrequest.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | -| `import_dataset_from_file_request` | [models.ImportDatasetFromFileRequest](../models/importdatasetfromfilerequest.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | +| `import_dataset_from_file_request` | [models.ImportDatasetFromFileRequest](../models/importdatasetfromfilerequest.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/postdatasetrecordsfromplaygroundv1observabilitydatasetsdatasetidimportsfromplaygroundpostrequest.md b/docs/models/postdatasetrecordsfromplaygroundv1observabilitydatasetsdatasetidimportsfromplaygroundpostrequest.md index 86ab87b8d..08db8ad94 100644 --- a/docs/models/postdatasetrecordsfromplaygroundv1observabilitydatasetsdatasetidimportsfromplaygroundpostrequest.md +++ b/docs/models/postdatasetrecordsfromplaygroundv1observabilitydatasetsdatasetidimportsfromplaygroundpostrequest.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | -| `import_dataset_from_playground_request` | [models.ImportDatasetFromPlaygroundRequest](../models/importdatasetfromplaygroundrequest.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | +| `import_dataset_from_playground_request` | [models.ImportDatasetFromPlaygroundRequest](../models/importdatasetfromplaygroundrequest.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/postdatasetrecordsfromspansv1observabilitydatasetsdatasetidimportsfromspanspostrequest.md b/docs/models/postdatasetrecordsfromspansv1observabilitydatasetsdatasetidimportsfromspanspostrequest.md index 503a5bb71..b18acf235 100644 --- a/docs/models/postdatasetrecordsfromspansv1observabilitydatasetsdatasetidimportsfromspanspostrequest.md +++ b/docs/models/postdatasetrecordsfromspansv1observabilitydatasetsdatasetidimportsfromspanspostrequest.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | -| `import_dataset_from_spans_request` | [models.ImportDatasetFromSpansRequest](../models/importdatasetfromspansrequest.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | +| `import_dataset_from_spans_request` | [models.ImportDatasetFromSpansRequest](../models/importdatasetfromspansrequest.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/project.md b/docs/models/project.md new file mode 100644 index 000000000..1b7f7ce32 --- /dev/null +++ b/docs/models/project.md @@ -0,0 +1,18 @@ +# Project + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `id` | *str* | :heavy_check_mark: | N/A | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `deleted_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `workspace_id` | *str* | :heavy_check_mark: | N/A | +| `creator_id` | *str* | :heavy_check_mark: | N/A | +| `name` | *str* | :heavy_check_mark: | N/A | +| `slug` | *str* | :heavy_check_mark: | N/A | +| `description` | *Nullable[str]* | :heavy_check_mark: | N/A | +| `is_favorite` | *Optional[bool]* | :heavy_minus_sign: | N/A | +| `evaluations` | List[[models.ProjectEvaluationSummary](../models/projectevaluationsummary.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/projectevaluationsummary.md b/docs/models/projectevaluationsummary.md new file mode 100644 index 000000000..3083b529a --- /dev/null +++ b/docs/models/projectevaluationsummary.md @@ -0,0 +1,13 @@ +# ProjectEvaluationSummary + +A lightweight evaluation reference embedded in the projects listing, so the client can render a +project's evaluations without firing one request per project. + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `id` | *str* | :heavy_check_mark: | N/A | +| `name` | *str* | :heavy_check_mark: | N/A | +| `slug` | *str* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/projects.md b/docs/models/projects.md new file mode 100644 index 000000000..0d60aabc1 --- /dev/null +++ b/docs/models/projects.md @@ -0,0 +1,8 @@ +# Projects + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `projects` | [models.PaginatedResultProject](../models/paginatedresultproject.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/publicauthenticationmethod.md b/docs/models/publicauthenticationmethod.md index 355f946b6..b53e78f31 100644 --- a/docs/models/publicauthenticationmethod.md +++ b/docs/models/publicauthenticationmethod.md @@ -7,7 +7,7 @@ Public view of an authentication method, without secrets. | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | -| `method_type` | [models.OutboundAuthenticationType](../models/outboundauthenticationtype.md) | :heavy_check_mark: | N/A | +| `method_type` | [models.AuthenticationType](../models/authenticationtype.md) | :heavy_check_mark: | N/A | | `headers` | List[[models.ConnectorAuthenticationHeader](../models/connectorauthenticationheader.md)] | :heavy_minus_sign: | N/A | | `global_headers` | Dict[str, [models.GlobalHeaderValue](../models/globalheadervalue.md)] | :heavy_minus_sign: | N/A | | `has_default_credentials` | *bool* | :heavy_check_mark: | N/A | diff --git a/docs/models/recordsortfield.md b/docs/models/recordsortfield.md new file mode 100644 index 000000000..2d74eeca0 --- /dev/null +++ b/docs/models/recordsortfield.md @@ -0,0 +1,13 @@ +# RecordSortField + +## Example Usage + +```python +from mistralai.client.models import RecordSortField +value: RecordSortField = "created_at" +``` + + +## Values + +- `"created_at"` diff --git a/docs/models/resourcechunk.md b/docs/models/resourcechunk.md new file mode 100644 index 000000000..28ac07373 --- /dev/null +++ b/docs/models/resourcechunk.md @@ -0,0 +1,10 @@ +# ResourceChunk + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | +| `type` | *Literal["resource"]* | :heavy_check_mark: | N/A | +| `uri` | *str* | :heavy_check_mark: | N/A | +| `content` | [models.ResourceChunkContent](../models/resourcechunkcontent.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/resourcechunkcontent.md b/docs/models/resourcechunkcontent.md new file mode 100644 index 000000000..8daafb5c3 --- /dev/null +++ b/docs/models/resourcechunkcontent.md @@ -0,0 +1,17 @@ +# ResourceChunkContent + + +## Supported Types + +### `models.TextChunk` + +```python +value: models.TextChunk = /* values here */ +``` + +### `models.ImageURLChunk` + +```python +value: models.ImageURLChunk = /* values here */ +``` + diff --git a/docs/models/resourcelinkchunk.md b/docs/models/resourcelinkchunk.md new file mode 100644 index 000000000..1bb90d191 --- /dev/null +++ b/docs/models/resourcelinkchunk.md @@ -0,0 +1,10 @@ +# ResourceLinkChunk + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `type` | *Literal["resource_link"]* | :heavy_check_mark: | N/A | +| `uri` | *str* | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, [models.Metadata](../models/metadata.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/runevaluationsummary.md b/docs/models/runevaluationsummary.md new file mode 100644 index 000000000..491537bb8 --- /dev/null +++ b/docs/models/runevaluationsummary.md @@ -0,0 +1,10 @@ +# RunEvaluationSummary + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `id` | *str* | :heavy_check_mark: | N/A | +| `name` | *str* | :heavy_check_mark: | N/A | +| `slug` | *str* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/runoptimizationref.md b/docs/models/runoptimizationref.md new file mode 100644 index 000000000..421930910 --- /dev/null +++ b/docs/models/runoptimizationref.md @@ -0,0 +1,14 @@ +# RunOptimizationRef + +Typed run→optimization back-ref, derived at read from the optimization_run link. + +Not stored on the run (single source of truth = optimization_run); lets a run row show +its optimization (id + name) without an extra request per run. + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `optimization_id` | *str* | :heavy_check_mark: | N/A | +| `name` | *str* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/runownershipfilter.md b/docs/models/runownershipfilter.md new file mode 100644 index 000000000..a3ef7d426 --- /dev/null +++ b/docs/models/runownershipfilter.md @@ -0,0 +1,23 @@ +# RunOwnershipFilter + +OR-able group isolating the "runs I care about" default (created by me OR in my starred projects). + +Kept separate from the plain generic filters so it can OR internally while still AND-ing with +everything else. The UI drives it via two sugar chips: "Created by me" writes `creator_ids`, and +"Starred projects" sets `starred_by_me`. Dropping a chip clears its term and the OR collapses to the +remaining one; dropping both leaves the group empty (no ownership scoping). + +`starred_by_me` is resolved server-side against the caller's favorites, so the client never has to +page through projects to collect starred ids — and a caller with zero starred projects correctly +matches no runs (rather than falling through to the whole workspace). `project_ids` remains for +explicit, caller-supplied project scoping. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `combinator` | [Optional[models.FilterCombinator]](../models/filtercombinator.md) | :heavy_minus_sign: | N/A | +| `creator_ids` | List[*str*] | :heavy_minus_sign: | N/A | +| `project_ids` | List[*str*] | :heavy_minus_sign: | N/A | +| `starred_by_me` | *Optional[bool]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/runprojectsummary.md b/docs/models/runprojectsummary.md new file mode 100644 index 000000000..385fc889e --- /dev/null +++ b/docs/models/runprojectsummary.md @@ -0,0 +1,10 @@ +# RunProjectSummary + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `id` | *str* | :heavy_check_mark: | N/A | +| `name` | *str* | :heavy_check_mark: | N/A | +| `slug` | *str* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/runstatisticsresponse.md b/docs/models/runstatisticsresponse.md new file mode 100644 index 000000000..f6da598cd --- /dev/null +++ b/docs/models/runstatisticsresponse.md @@ -0,0 +1,11 @@ +# RunStatisticsResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `run_id` | *str* | :heavy_check_mark: | N/A | +| `statistics` | Dict[str, [models.EvaluatorStatistics](../models/evaluatorstatistics.md)] | :heavy_check_mark: | N/A | +| `goal_results` | Dict[str, [models.GoalResult](../models/goalresult.md)] | :heavy_minus_sign: | N/A | +| `passed` | *OptionalNullable[bool]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/scalarstatisticvalue.md b/docs/models/scalarstatisticvalue.md new file mode 100644 index 000000000..95e9f8d1c --- /dev/null +++ b/docs/models/scalarstatisticvalue.md @@ -0,0 +1,18 @@ +# ScalarStatisticValue + +A single scalar computed run-level statistic: its canonical id and numeric value. + +``value`` is ``None`` when the statistic is not evaluable (e.g. a ``sum`` or percentile over an +empty numeric sample). A declared ``count`` is always evaluable and is ``0`` on an empty sample. + +The ``type`` discriminator lets future result shapes (e.g. a categorical ``categories`` or a +``distribution``) join a union without overloading this model; consumers dispatch on ``type``. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | +| `type` | *Optional[Literal["scalar"]]* | :heavy_minus_sign: | N/A | +| `id` | *str* | :heavy_check_mark: | N/A | +| `value` | *OptionalNullable[float]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/scorefilter.md b/docs/models/scorefilter.md new file mode 100644 index 000000000..75212b1b6 --- /dev/null +++ b/docs/models/scorefilter.md @@ -0,0 +1,11 @@ +# ScoreFilter + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `evaluator_name` | *str* | :heavy_check_mark: | N/A | +| `metric` | *str* | :heavy_check_mark: | N/A | +| `operator` | [models.ScoreOperator](../models/scoreoperator.md) | :heavy_check_mark: | N/A | +| `value` | [models.ScoreFilterValue](../models/scorefiltervalue.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/scorefiltergroup.md b/docs/models/scorefiltergroup.md new file mode 100644 index 000000000..51aa58e9f --- /dev/null +++ b/docs/models/scorefiltergroup.md @@ -0,0 +1,9 @@ +# ScoreFilterGroup + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `combinator` | [Optional[models.FilterCombinator]](../models/filtercombinator.md) | :heavy_minus_sign: | N/A | +| `filters` | List[[models.ScoreFilter](../models/scorefilter.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/scorefiltervalue.md b/docs/models/scorefiltervalue.md new file mode 100644 index 000000000..aacbe8c84 --- /dev/null +++ b/docs/models/scorefiltervalue.md @@ -0,0 +1,17 @@ +# ScoreFilterValue + + +## Supported Types + +### `float` + +```python +value: float = /* values here */ +``` + +### `str` + +```python +value: str = /* values here */ +``` + diff --git a/docs/models/scoreoperator.md b/docs/models/scoreoperator.md new file mode 100644 index 000000000..08a41db19 --- /dev/null +++ b/docs/models/scoreoperator.md @@ -0,0 +1,17 @@ +# ScoreOperator + +## Example Usage + +```python +from mistralai.client.models import ScoreOperator +value: ScoreOperator = "gt" +``` + + +## Values + +- `"gt"` +- `"gte"` +- `"lt"` +- `"lte"` +- `"eq"` diff --git a/docs/models/scoresortinput.md b/docs/models/scoresortinput.md new file mode 100644 index 000000000..019fa45c1 --- /dev/null +++ b/docs/models/scoresortinput.md @@ -0,0 +1,11 @@ +# ScoreSortInput + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | +| `kind` | *Literal["score"]* | :heavy_check_mark: | N/A | +| `evaluator_name` | *str* | :heavy_check_mark: | N/A | +| `metric` | [Optional[models.NumericScoreMetric]](../models/numericscoremetric.md) | :heavy_minus_sign: | N/A | +| `direction` | [Optional[models.SortDirection]](../models/sortdirection.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/searchallevaluationrunsresponse.md b/docs/models/searchallevaluationrunsresponse.md new file mode 100644 index 000000000..bbdc662d0 --- /dev/null +++ b/docs/models/searchallevaluationrunsresponse.md @@ -0,0 +1,8 @@ +# SearchAllEvaluationRunsResponse + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `runs` | [models.PaginatedResultEvaluationRunV2WithRefsResponse](../models/paginatedresultevaluationrunv2withrefsresponse.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/searchallevaluationrunsv2v1observabilityevaluationrunsv2searchpostrequest.md b/docs/models/searchallevaluationrunsv2v1observabilityevaluationrunsv2searchpostrequest.md new file mode 100644 index 000000000..93daabc04 --- /dev/null +++ b/docs/models/searchallevaluationrunsv2v1observabilityevaluationrunsv2searchpostrequest.md @@ -0,0 +1,10 @@ +# SearchAllEvaluationRunsV2V1ObservabilityEvaluationRunsV2SearchPostRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `evaluation_run_filter_input` | [OptionalNullable[models.EvaluationRunFilterInput]](../models/evaluationrunfilterinput.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/searchevaluationrunrecordsv2v1observabilityevaluationrunsv2runidrecordssearchpostrequest.md b/docs/models/searchevaluationrunrecordsv2v1observabilityevaluationrunsv2runidrecordssearchpostrequest.md new file mode 100644 index 000000000..83aa8dfb3 --- /dev/null +++ b/docs/models/searchevaluationrunrecordsv2v1observabilityevaluationrunsv2runidrecordssearchpostrequest.md @@ -0,0 +1,11 @@ +# SearchEvaluationRunRecordsV2V1ObservabilityEvaluationRunsV2RunIDRecordsSearchPostRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | +| `run_id` | *str* | :heavy_check_mark: | N/A | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `evaluation_run_record_filter_input` | [OptionalNullable[models.EvaluationRunRecordFilterInput]](../models/evaluationrunrecordfilterinput.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/searchevaluationrunsv2v1observabilityevaluationsv2evaluationslugrunssearchpostrequest.md b/docs/models/searchevaluationrunsv2v1observabilityevaluationsv2evaluationslugrunssearchpostrequest.md new file mode 100644 index 000000000..85185d2cf --- /dev/null +++ b/docs/models/searchevaluationrunsv2v1observabilityevaluationsv2evaluationslugrunssearchpostrequest.md @@ -0,0 +1,11 @@ +# SearchEvaluationRunsV2V1ObservabilityEvaluationsV2EvaluationSlugRunsSearchPostRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | +| `evaluation_slug` | *str* | :heavy_check_mark: | N/A | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `evaluation_run_filter_input` | [OptionalNullable[models.EvaluationRunFilterInput]](../models/evaluationrunfilterinput.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/simplenumericstatisticspec.md b/docs/models/simplenumericstatisticspec.md new file mode 100644 index 000000000..9c8327137 --- /dev/null +++ b/docs/models/simplenumericstatisticspec.md @@ -0,0 +1,11 @@ +# SimpleNumericStatisticSpec + +A scalar numeric reduction with no parameters (``avg``/``sum``/``min``/``max``/``std``/``count``). + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `kind` | [models.SimpleNumericStatisticSpecKind](../models/simplenumericstatisticspeckind.md) | :heavy_check_mark: | N/A | +| `goal` | [OptionalNullable[models.GoalSpec]](../models/goalspec.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/simplenumericstatisticspeckind.md b/docs/models/simplenumericstatisticspeckind.md new file mode 100644 index 000000000..6031ef2bd --- /dev/null +++ b/docs/models/simplenumericstatisticspeckind.md @@ -0,0 +1,22 @@ +# SimpleNumericStatisticSpecKind + +## Example Usage + +```python +from mistralai.client.models import SimpleNumericStatisticSpecKind + +# Open enum: unrecognized values are captured as UnrecognizedStr +value: SimpleNumericStatisticSpecKind = "avg" +``` + + +## Values + +This is an open enum. Unrecognized values will not fail type checks. + +- `"avg"` +- `"sum"` +- `"min"` +- `"max"` +- `"std"` +- `"count"` diff --git a/docs/models/sort.md b/docs/models/sort.md new file mode 100644 index 000000000..0d0c2db40 --- /dev/null +++ b/docs/models/sort.md @@ -0,0 +1,17 @@ +# Sort + + +## Supported Types + +### `models.FieldSortInput` + +```python +value: models.FieldSortInput = /* values here */ +``` + +### `models.ScoreSortInput` + +```python +value: models.ScoreSortInput = /* values here */ +``` + diff --git a/docs/models/sortdirection.md b/docs/models/sortdirection.md new file mode 100644 index 000000000..30efc66e8 --- /dev/null +++ b/docs/models/sortdirection.md @@ -0,0 +1,14 @@ +# SortDirection + +## Example Usage + +```python +from mistralai.client.models import SortDirection +value: SortDirection = "asc" +``` + + +## Values + +- `"asc"` +- `"desc"` diff --git a/docs/models/speechrequest.md b/docs/models/speechrequest.md index 7c3d7b06a..ad2cb2e2f 100644 --- a/docs/models/speechrequest.md +++ b/docs/models/speechrequest.md @@ -3,14 +3,15 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| `model` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | -| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | -| `stream` | *Optional[bool]* | :heavy_minus_sign: | N/A | -| `prompt_cache_key` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | -| `voice_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The preset or custom voice to use for generating the speech. | -| `ref_audio` | *OptionalNullable[str]* | :heavy_minus_sign: | The audio reference for generating the speech. | -| `input` | *str* | :heavy_check_mark: | Text to generate a speech from | -| `response_format` | [Optional[models.SpeechOutputFormat]](../models/speechoutputformat.md) | :heavy_minus_sign: | N/A | -| `__pydantic_extra__` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | +| `model` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `stream` | *Optional[bool]* | :heavy_minus_sign: | N/A | +| `prompt_cache_key` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `voice_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The preset or custom voice to use for generating the speech. | +| `ref_audio` | *OptionalNullable[str]* | :heavy_minus_sign: | The audio reference for generating the speech. | +| `input` | *str* | :heavy_check_mark: | Text to generate a speech from | +| `phoneme_hints` | Dict[str, List[[models.IPAPhoneme](../models/ipaphoneme.md)]] | :heavy_minus_sign: | Optional pronunciation hints mapping a (case-sensitive) word to its ordered list of IPA phones. | +| `response_format` | [Optional[models.SpeechOutputFormat]](../models/speechoutputformat.md) | :heavy_minus_sign: | N/A | +| `__pydantic_extra__` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/statistic.md b/docs/models/statistic.md new file mode 100644 index 000000000..4837a6a8f --- /dev/null +++ b/docs/models/statistic.md @@ -0,0 +1,65 @@ +# Statistic + + +## Supported Types + +### `models.SimpleNumericStatisticSpec` + +```python +value: models.SimpleNumericStatisticSpec = /* values here */ +``` + +### `models.SimpleNumericStatisticSpec` + +```python +value: models.SimpleNumericStatisticSpec = /* values here */ +``` + +### `models.ClassificationStatisticSpec` + +```python +value: models.ClassificationStatisticSpec = /* values here */ +``` + +### `models.SimpleNumericStatisticSpec` + +```python +value: models.SimpleNumericStatisticSpec = /* values here */ +``` + +### `models.SimpleNumericStatisticSpec` + +```python +value: models.SimpleNumericStatisticSpec = /* values here */ +``` + +### `models.PercentileStatisticSpec` + +```python +value: models.PercentileStatisticSpec = /* values here */ +``` + +### `models.ClassificationStatisticSpec` + +```python +value: models.ClassificationStatisticSpec = /* values here */ +``` + +### `models.ClassificationStatisticSpec` + +```python +value: models.ClassificationStatisticSpec = /* values here */ +``` + +### `models.SimpleNumericStatisticSpec` + +```python +value: models.SimpleNumericStatisticSpec = /* values here */ +``` + +### `models.SimpleNumericStatisticSpec` + +```python +value: models.SimpleNumericStatisticSpec = /* values here */ +``` + diff --git a/docs/models/systemfilter.md b/docs/models/systemfilter.md new file mode 100644 index 000000000..74167fffd --- /dev/null +++ b/docs/models/systemfilter.md @@ -0,0 +1,9 @@ +# SystemFilter + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `name` | [OptionalNullable[models.SystemNameFilterGroup]](../models/systemnamefiltergroup.md) | :heavy_minus_sign: | N/A | +| `params` | [OptionalNullable[models.SystemParamFilterGroup]](../models/systemparamfiltergroup.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/systemnamefilter.md b/docs/models/systemnamefilter.md new file mode 100644 index 000000000..65ec3175d --- /dev/null +++ b/docs/models/systemnamefilter.md @@ -0,0 +1,9 @@ +# SystemNameFilter + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `value` | *str* | :heavy_check_mark: | N/A | +| `operator` | [Optional[models.ContentSearchOperator]](../models/contentsearchoperator.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/systemnamefiltergroup.md b/docs/models/systemnamefiltergroup.md new file mode 100644 index 000000000..49058d356 --- /dev/null +++ b/docs/models/systemnamefiltergroup.md @@ -0,0 +1,9 @@ +# SystemNameFilterGroup + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `combinator` | [Optional[models.FilterCombinator]](../models/filtercombinator.md) | :heavy_minus_sign: | N/A | +| `filters` | List[[models.SystemNameFilter](../models/systemnamefilter.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/systemparamfilter.md b/docs/models/systemparamfilter.md new file mode 100644 index 000000000..3126e8573 --- /dev/null +++ b/docs/models/systemparamfilter.md @@ -0,0 +1,10 @@ +# SystemParamFilter + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `key` | *str* | :heavy_check_mark: | N/A | +| `operator` | [models.SystemParamOperator](../models/systemparamoperator.md) | :heavy_check_mark: | N/A | +| `value` | [models.SystemParamFilterValue](../models/systemparamfiltervalue.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/systemparamfiltergroup.md b/docs/models/systemparamfiltergroup.md new file mode 100644 index 000000000..f6b3a8a07 --- /dev/null +++ b/docs/models/systemparamfiltergroup.md @@ -0,0 +1,9 @@ +# SystemParamFilterGroup + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `combinator` | [Optional[models.FilterCombinator]](../models/filtercombinator.md) | :heavy_minus_sign: | N/A | +| `filters` | List[[models.SystemParamFilter](../models/systemparamfilter.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/systemparamfiltervalue.md b/docs/models/systemparamfiltervalue.md new file mode 100644 index 000000000..5e2e7f756 --- /dev/null +++ b/docs/models/systemparamfiltervalue.md @@ -0,0 +1,23 @@ +# SystemParamFilterValue + + +## Supported Types + +### `float` + +```python +value: float = /* values here */ +``` + +### `str` + +```python +value: str = /* values here */ +``` + +### `bool` + +```python +value: bool = /* values here */ +``` + diff --git a/docs/models/systemparamoperator.md b/docs/models/systemparamoperator.md new file mode 100644 index 000000000..d6287bd23 --- /dev/null +++ b/docs/models/systemparamoperator.md @@ -0,0 +1,18 @@ +# SystemParamOperator + +## Example Usage + +```python +from mistralai.client.models import SystemParamOperator +value: SystemParamOperator = "eq" +``` + + +## Values + +- `"eq"` +- `"contains"` +- `"gt"` +- `"gte"` +- `"lt"` +- `"lte"` diff --git a/docs/models/systemv2.md b/docs/models/systemv2.md new file mode 100644 index 000000000..068ac38ec --- /dev/null +++ b/docs/models/systemv2.md @@ -0,0 +1,13 @@ +# SystemV2 + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `id` | *str* | :heavy_check_mark: | N/A | +| `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `updated_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `deleted_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | +| `name` | *str* | :heavy_check_mark: | N/A | +| `params` | Dict[str, [models.Params](../models/params.md)] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/tagfilter.md b/docs/models/tagfilter.md new file mode 100644 index 000000000..8ae915c95 --- /dev/null +++ b/docs/models/tagfilter.md @@ -0,0 +1,9 @@ +# TagFilter + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `combinator` | [Optional[models.FilterCombinator]](../models/filtercombinator.md) | :heavy_minus_sign: | N/A | +| `values` | List[*str*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/unsupportedstatistics.md b/docs/models/unsupportedstatistics.md new file mode 100644 index 000000000..596843d67 --- /dev/null +++ b/docs/models/unsupportedstatistics.md @@ -0,0 +1,9 @@ +# UnsupportedStatistics + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | +| `type` | *Optional[Literal["unsupported"]]* | :heavy_minus_sign: | N/A | +| `count` | *int* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/updatedatasetv1observabilitydatasetsdatasetidpatchrequest.md b/docs/models/updatedatasetv1observabilitydatasetsdatasetidpatchrequest.md index 78eae8fb8..303e179a1 100644 --- a/docs/models/updatedatasetv1observabilitydatasetsdatasetidpatchrequest.md +++ b/docs/models/updatedatasetv1observabilitydatasetsdatasetidpatchrequest.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | -| `update_dataset_request` | [models.UpdateDatasetRequest](../models/updatedatasetrequest.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | +| `update_dataset_request` | [models.UpdateDatasetRequest](../models/updatedatasetrequest.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/updatepipelinerequest.md b/docs/models/updatepipelinerequest.md index edcafcc27..cd85a51d7 100644 --- a/docs/models/updatepipelinerequest.md +++ b/docs/models/updatepipelinerequest.md @@ -5,8 +5,8 @@ | Field | Type | Required | Description | | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| `name` | *str* | :heavy_check_mark: | N/A | +| `name` | *Optional[str]* | :heavy_minus_sign: | N/A | | `description` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | -| `selectors` | List[[models.PipelineConfigSelector](../models/pipelineconfigselector.md)] | :heavy_check_mark: | N/A | -| `definitions` | List[[models.JudgeDefinition](../models/judgedefinition.md)] | :heavy_check_mark: | N/A | -| `enabled` | *bool* | :heavy_check_mark: | N/A | \ No newline at end of file +| `selectors` | List[[models.PipelineConfigSelector](../models/pipelineconfigselector.md)] | :heavy_minus_sign: | N/A | +| `definitions` | List[[models.JudgeDefinition](../models/judgedefinition.md)] | :heavy_minus_sign: | N/A | +| `enabled` | *Optional[bool]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/voicekind.md b/docs/models/voicekind.md new file mode 100644 index 000000000..6fd0df86f --- /dev/null +++ b/docs/models/voicekind.md @@ -0,0 +1,18 @@ +# VoiceKind + +## Example Usage + +```python +from mistralai.client.models import VoiceKind + +# Open enum: unrecognized values are captured as UnrecognizedStr +value: VoiceKind = "ivc" +``` + + +## Values + +This is an open enum. Unrecognized values will not fail type checks. + +- `"ivc"` +- `"pvc"` diff --git a/docs/models/voiceresponse.md b/docs/models/voiceresponse.md index a30a297ac..c7f88311e 100644 --- a/docs/models/voiceresponse.md +++ b/docs/models/voiceresponse.md @@ -20,4 +20,5 @@ Schema for voice response | `created_at` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | | `user_id` | *Nullable[str]* | :heavy_check_mark: | N/A | | `trimmed_seconds` | *OptionalNullable[float]* | :heavy_minus_sign: | N/A | +| `kind` | [Optional[models.VoiceKind]](../models/voicekind.md) | :heavy_minus_sign: | N/A | | `type` | [models.VoiceResponseType](../models/voiceresponsetype.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/sdks/agents/README.md b/docs/sdks/agents/README.md index 9ecb2fef8..449d90ad7 100644 --- a/docs/sdks/agents/README.md +++ b/docs/sdks/agents/README.md @@ -136,7 +136,7 @@ with Mistral( ### Response -**Union[eventstreaming.EventStream[models.CompletionEvent], eventstreaming.EventStreamAsync[models.CompletionEvent]]** +**[Union[eventstreaming.EventStream[models.CompletionEvent], eventstreaming.EventStreamAsync[models.CompletionEvent]]](../../models/.md)** ### Errors diff --git a/docs/sdks/betaagents/README.md b/docs/sdks/betaagents/README.md index afd83d171..ca1dc5033 100644 --- a/docs/sdks/betaagents/README.md +++ b/docs/sdks/betaagents/README.md @@ -114,7 +114,7 @@ with Mistral( ### Response -**List[models.Agent]** +**[List[models.Agent]](../../models/.md)** ### Errors @@ -383,7 +383,7 @@ with Mistral( ### Response -**List[models.Agent]** +**[List[models.Agent]](../../models/.md)** ### Errors @@ -509,7 +509,7 @@ with Mistral( ### Response -**List[models.AgentAliasResponse]** +**[List[models.AgentAliasResponse]](../../models/.md)** ### Errors diff --git a/docs/sdks/chat/README.md b/docs/sdks/chat/README.md index 254c4cde7..e9bbc68dd 100644 --- a/docs/sdks/chat/README.md +++ b/docs/sdks/chat/README.md @@ -142,7 +142,7 @@ with Mistral( ### Response -**Union[eventstreaming.EventStream[models.CompletionEvent], eventstreaming.EventStreamAsync[models.CompletionEvent]]** +**[Union[eventstreaming.EventStream[models.CompletionEvent], eventstreaming.EventStreamAsync[models.CompletionEvent]]](../../models/.md)** ### Errors diff --git a/docs/sdks/connectors/README.md b/docs/sdks/connectors/README.md index 74957a6dd..279989932 100644 --- a/docs/sdks/connectors/README.md +++ b/docs/sdks/connectors/README.md @@ -147,7 +147,7 @@ with Mistral( | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `connector_id_or_name` | *str* | :heavy_check_mark: | N/A | | `app_return_url` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | -| `method_type` | [Optional[models.OutboundAuthenticationType]](../../models/outboundauthenticationtype.md) | :heavy_minus_sign: | Auth method type to use for the authorization URL. Required when the connector supports multiple interactive auth methods; otherwise the sole method is selected automatically. Use this to pick a specific method (e.g. 'oauth2' vs 'github_app'). | +| `method_type` | [Optional[models.AuthenticationType]](../../models/authenticationtype.md) | :heavy_minus_sign: | Auth method type to use for the authorization URL. Required when the connector supports multiple interactive auth methods; otherwise the sole method is selected automatically. Use this to pick a specific method (e.g. 'oauth2' vs 'github_app'). | | `credentials_name` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `credentials_title` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `github_installation_link` | *Optional[bool]* | :heavy_minus_sign: | Only valid with method_type=oauth2. When true, returns a GitHub App installation URL (https://github.com/apps//installations/new) if the connector has the proper configuration The Github application needs to have 'Request user authorization (OAuth) during installation' enabled to perform the proper auth loop. | @@ -569,12 +569,12 @@ with Mistral( ### Parameters -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | -| `connector_id_or_name` | *str* | :heavy_check_mark: | N/A | -| `auth_type` | [OptionalNullable[models.OutboundAuthenticationType]](../../models/outboundauthenticationtype.md) | :heavy_minus_sign: | N/A | -| `fetch_default` | *Optional[bool]* | :heavy_minus_sign: | N/A | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | +| Parameter | Type | Required | Description | +| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `connector_id_or_name` | *str* | :heavy_check_mark: | N/A | +| `auth_type` | [OptionalNullable[models.AuthenticationType]](../../models/authenticationtype.md) | :heavy_minus_sign: | N/A | +| `fetch_default` | *Optional[bool]* | :heavy_minus_sign: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response @@ -612,12 +612,12 @@ with Mistral( ### Parameters -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | -| `connector_id_or_name` | *str* | :heavy_check_mark: | N/A | -| `auth_type` | [OptionalNullable[models.OutboundAuthenticationType]](../../models/outboundauthenticationtype.md) | :heavy_minus_sign: | N/A | -| `fetch_default` | *Optional[bool]* | :heavy_minus_sign: | N/A | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | +| Parameter | Type | Required | Description | +| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `connector_id_or_name` | *str* | :heavy_check_mark: | N/A | +| `auth_type` | [OptionalNullable[models.AuthenticationType]](../../models/authenticationtype.md) | :heavy_minus_sign: | N/A | +| `fetch_default` | *Optional[bool]* | :heavy_minus_sign: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response @@ -655,12 +655,12 @@ with Mistral( ### Parameters -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | -| `connector_id_or_name` | *str* | :heavy_check_mark: | N/A | -| `auth_type` | [OptionalNullable[models.OutboundAuthenticationType]](../../models/outboundauthenticationtype.md) | :heavy_minus_sign: | N/A | -| `fetch_default` | *Optional[bool]* | :heavy_minus_sign: | N/A | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | +| Parameter | Type | Required | Description | +| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `connector_id_or_name` | *str* | :heavy_check_mark: | N/A | +| `auth_type` | [OptionalNullable[models.AuthenticationType]](../../models/authenticationtype.md) | :heavy_minus_sign: | N/A | +| `fetch_default` | *Optional[bool]* | :heavy_minus_sign: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response diff --git a/docs/sdks/conversations/README.md b/docs/sdks/conversations/README.md index e6c73e23f..63cd80a4a 100644 --- a/docs/sdks/conversations/README.md +++ b/docs/sdks/conversations/README.md @@ -109,7 +109,7 @@ with Mistral( ### Response -**List[models.AgentsAPIV1ConversationsListResponse]** +**[List[models.AgentsAPIV1ConversationsListResponse]](../../models/.md)** ### Errors @@ -437,7 +437,7 @@ with Mistral( ### Response -**Union[eventstreaming.EventStream[models.ConversationEvents], eventstreaming.EventStreamAsync[models.ConversationEvents]]** +**[Union[eventstreaming.EventStream[models.ConversationEvents], eventstreaming.EventStreamAsync[models.ConversationEvents]]](../../models/.md)** ### Errors @@ -489,7 +489,7 @@ with Mistral( ### Response -**Union[eventstreaming.EventStream[models.ConversationEvents], eventstreaming.EventStreamAsync[models.ConversationEvents]]** +**[Union[eventstreaming.EventStream[models.ConversationEvents], eventstreaming.EventStreamAsync[models.ConversationEvents]]](../../models/.md)** ### Errors @@ -544,7 +544,7 @@ with Mistral( ### Response -**Union[eventstreaming.EventStream[models.ConversationEvents], eventstreaming.EventStreamAsync[models.ConversationEvents]]** +**[Union[eventstreaming.EventStream[models.ConversationEvents], eventstreaming.EventStreamAsync[models.ConversationEvents]]](../../models/.md)** ### Errors diff --git a/docs/sdks/datasets/README.md b/docs/sdks/datasets/README.md index 33ba11244..beca199c4 100644 --- a/docs/sdks/datasets/README.md +++ b/docs/sdks/datasets/README.md @@ -6,7 +6,7 @@ * [create](#create) - Create a new empty dataset * [list](#list) - List existing datasets -* [fetch](#fetch) - Get dataset by id +* [fetch](#fetch) - Get dataset by ID or slug * [delete](#delete) - Delete a dataset * [update](#update) - Patch dataset * [list_records](#list_records) - List existing records in the dataset @@ -106,7 +106,7 @@ with Mistral( ## fetch -Get dataset by id +Get dataset by ID or slug ### Example Usage @@ -129,10 +129,10 @@ with Mistral( ### Parameters -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response @@ -169,10 +169,10 @@ with Mistral( ### Parameters -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Errors @@ -206,12 +206,12 @@ with Mistral( ### Parameters -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | -| `name` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | -| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | +| `name` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response @@ -249,12 +249,12 @@ with Mistral( ### Parameters -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | -| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | -| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response @@ -304,7 +304,7 @@ with Mistral( | Parameter | Type | Required | Description | | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | | `payload` | Dict[str, *Any*] | :heavy_check_mark: | Caller-authored input object stored on a dataset record. | | `properties` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | `source` | [Optional[models.CreateDatasetRecordRequestSource]](../../models/createdatasetrecordrequestsource.md) | :heavy_minus_sign: | Caller-declared channel that initiated record creation. This value does not certify that the payload is an unmodified copy of its source. | @@ -346,11 +346,11 @@ with Mistral( ### Parameters -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | -| `file_id` | *str* | :heavy_check_mark: | N/A | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | +| `file_id` | *str* | :heavy_check_mark: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response @@ -388,11 +388,11 @@ with Mistral( ### Parameters -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | -| `conversation_ids` | List[*str*] | :heavy_check_mark: | N/A | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | +| `conversation_ids` | List[*str*] | :heavy_check_mark: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response @@ -448,7 +448,7 @@ with Mistral( | Parameter | Type | Required | Description | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | | `span_references` | List[[models.TelemetrySpanReference](../../models/telemetryspanreference.md)] | :heavy_check_mark: | Spans to attempt to import; unavailable references are skipped, and trace and span IDs are attached as record properties automatically. | | `mapping_contract` | [models.SpanDatasetMappingContract](../../models/spandatasetmappingcontract.md) | :heavy_check_mark: | Mapping rules applied independently to every requested telemetry span.

Version 1 mappings are optional per span: a missing, null, blank-string, or empty-array
source omits the target key. JSON object and array strings become structured values;
scalar-looking and malformed JSON strings remain strings. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | @@ -492,11 +492,11 @@ with Mistral( ### Parameters -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | -| `dataset_record_ids` | List[*str*] | :heavy_check_mark: | N/A | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | +| `dataset_record_ids` | List[*str*] | :heavy_check_mark: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response @@ -534,10 +534,10 @@ with Mistral( ### Parameters -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response @@ -575,11 +575,11 @@ with Mistral( ### Parameters -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | -| `task_id` | *str* | :heavy_check_mark: | N/A | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | +| `task_id` | *str* | :heavy_check_mark: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response @@ -617,12 +617,12 @@ with Mistral( ### Parameters -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | -| `dataset_id` | *str* | :heavy_check_mark: | N/A | -| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | -| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `dataset_id` | *str* | :heavy_check_mark: | Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response diff --git a/docs/sdks/records/README.md b/docs/sdks/datasetsrecords/README.md similarity index 100% rename from docs/sdks/records/README.md rename to docs/sdks/datasetsrecords/README.md diff --git a/docs/sdks/evaluations/README.md b/docs/sdks/evaluations/README.md index 5b6c0a608..4d55bc784 100644 --- a/docs/sdks/evaluations/README.md +++ b/docs/sdks/evaluations/README.md @@ -14,6 +14,8 @@ * [get_pipeline](#get_pipeline) - Get a pipeline * [update_pipeline](#update_pipeline) - Update a pipeline * [delete_pipeline](#delete_pipeline) - Delete a pipeline +* [list](#list) - List evaluations for a project +* [get](#get) - Get evaluation by slug ## create_pipeline_config @@ -394,11 +396,7 @@ with Mistral( api_key=os.getenv("MISTRAL_API_KEY", ""), ) as mistral: - res = mistral.beta.observability.evaluations.update_pipeline(pipeline_id="2c18966b-8d2d-41fb-a02c-9a9bf9df2919", name="", selectors=[ - { - "source_kind": "log", - }, - ], definitions=[], enabled=True) + res = mistral.beta.observability.evaluations.update_pipeline(pipeline_id="2c18966b-8d2d-41fb-a02c-9a9bf9df2919") # Handle response print(res) @@ -410,11 +408,11 @@ with Mistral( | Parameter | Type | Required | Description | | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | `pipeline_id` | *str* | :heavy_check_mark: | N/A | -| `name` | *str* | :heavy_check_mark: | N/A | -| `selectors` | List[[models.PipelineConfigSelector](../../models/pipelineconfigselector.md)] | :heavy_check_mark: | N/A | -| `definitions` | List[[models.JudgeDefinition](../../models/judgedefinition.md)] | :heavy_check_mark: | N/A | -| `enabled` | *bool* | :heavy_check_mark: | N/A | +| `name` | *Optional[str]* | :heavy_minus_sign: | N/A | | `description` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `selectors` | List[[models.PipelineConfigSelector](../../models/pipelineconfigselector.md)] | :heavy_minus_sign: | N/A | +| `definitions` | List[[models.JudgeDefinition](../../models/judgedefinition.md)] | :heavy_minus_sign: | N/A | +| `enabled` | *Optional[bool]* | :heavy_minus_sign: | N/A | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response @@ -459,6 +457,90 @@ with Mistral( ### Errors +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| errors.ObservabilityError | 400, 404, 408, 409, 422 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## list + +List evaluations for a project + +### Example Usage + + +```python +from mistralai.client import Mistral +import os + + +with Mistral( + api_key=os.getenv("MISTRAL_API_KEY", ""), +) as mistral: + + res = mistral.beta.observability.evaluations.list(project_slug="", page_size=50, page=1) + + # Handle response + print(res) + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `project_slug` | *str* | :heavy_check_mark: | N/A | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | + +### Response + +**[models.EvaluationsV2](../../models/evaluationsv2.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| errors.ObservabilityError | 400, 404, 408, 409, 422 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## get + +Get evaluation by slug + +### Example Usage + + +```python +from mistralai.client import Mistral +import os + + +with Mistral( + api_key=os.getenv("MISTRAL_API_KEY", ""), +) as mistral: + + res = mistral.beta.observability.evaluations.get(evaluation_slug="") + + # Handle response + print(res) + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `evaluation_slug` | *str* | :heavy_check_mark: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | + +### Response + +**[models.EvaluationV2](../../models/evaluationv2.md)** + +### Errors + | Error Type | Status Code | Content Type | | ------------------------- | ------------------------- | ------------------------- | | errors.ObservabilityError | 400, 404, 408, 409, 422 | application/json | diff --git a/docs/sdks/evaluationsprojects/README.md b/docs/sdks/evaluationsprojects/README.md new file mode 100644 index 000000000..954c5f260 --- /dev/null +++ b/docs/sdks/evaluationsprojects/README.md @@ -0,0 +1,92 @@ +# Beta.Observability.Evaluations.Projects + +## Overview + +### Available Operations + +* [list](#list) - List projects +* [get](#get) - Get project by slug + +## list + +List projects + +### Example Usage + + +```python +from mistralai.client import Mistral +import os + + +with Mistral( + api_key=os.getenv("MISTRAL_API_KEY", ""), +) as mistral: + + res = mistral.beta.observability.evaluations.projects.list(page_size=50, page=1) + + # Handle response + print(res) + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `q` | *OptionalNullable[str]* | :heavy_minus_sign: | Case-insensitive filter on project name/slug. | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | + +### Response + +**[models.Projects](../../models/projects.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| errors.ObservabilityError | 400, 404, 408, 409, 422 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## get + +Get project by slug + +### Example Usage + + +```python +from mistralai.client import Mistral +import os + + +with Mistral( + api_key=os.getenv("MISTRAL_API_KEY", ""), +) as mistral: + + res = mistral.beta.observability.evaluations.projects.get(project_slug="") + + # Handle response + print(res) + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `project_slug` | *str* | :heavy_check_mark: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | + +### Response + +**[models.Project](../../models/project.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| errors.ObservabilityError | 400, 404, 408, 409, 422 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/evaluationsrecords/README.md b/docs/sdks/evaluationsrecords/README.md new file mode 100644 index 000000000..f3138e3a8 --- /dev/null +++ b/docs/sdks/evaluationsrecords/README.md @@ -0,0 +1,98 @@ +# Beta.Observability.Evaluations.Records + +## Overview + +### Available Operations + +* [get](#get) - Get a specific record from an evaluation run +* [search](#search) - Search records for an evaluation run with content filters + +## get + +Get a specific record from an evaluation run + +### Example Usage + + +```python +from mistralai.client import Mistral +import os + + +with Mistral( + api_key=os.getenv("MISTRAL_API_KEY", ""), +) as mistral: + + res = mistral.beta.observability.evaluations.records.get(run_id="4561f251-c638-4a33-8739-db876b032f73", record_id="24b40e66-4e0d-4788-bb5a-df09239c7ba9") + + # Handle response + print(res) + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `run_id` | *str* | :heavy_check_mark: | N/A | +| `record_id` | *str* | :heavy_check_mark: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | + +### Response + +**[models.EvaluationRunRecordV2Response](../../models/evaluationrunrecordv2response.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| errors.ObservabilityError | 400, 404, 408, 409, 422 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## search + +Search records for an evaluation run with content filters + +### Example Usage + + +```python +from mistralai.client import Mistral +import os + + +with Mistral( + api_key=os.getenv("MISTRAL_API_KEY", ""), +) as mistral: + + res = mistral.beta.observability.evaluations.records.search(run_id="3ec2a158-4bb7-4020-8a52-0f64a2745094", page_size=50, page=1) + + # Handle response + print(res) + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `run_id` | *str* | :heavy_check_mark: | N/A | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `input_filters` | [OptionalNullable[models.ContentSearchFilterGroup]](../../models/contentsearchfiltergroup.md) | :heavy_minus_sign: | N/A | +| `output_filters` | [OptionalNullable[models.ContentSearchFilterGroup]](../../models/contentsearchfiltergroup.md) | :heavy_minus_sign: | N/A | +| `score_filters` | [OptionalNullable[models.ScoreFilterGroup]](../../models/scorefiltergroup.md) | :heavy_minus_sign: | N/A | +| `goal_filters` | [OptionalNullable[models.GoalStatusFilterGroup]](../../models/goalstatusfiltergroup.md) | :heavy_minus_sign: | N/A | +| `sort` | [OptionalNullable[models.Sort]](../../models/sort.md) | :heavy_minus_sign: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | + +### Response + +**[models.ListEvaluationRunRecordsResponse](../../models/listevaluationrunrecordsresponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| errors.ObservabilityError | 400, 404, 408, 409, 422 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/evaluationsruns/README.md b/docs/sdks/evaluationsruns/README.md new file mode 100644 index 000000000..4c545676b --- /dev/null +++ b/docs/sdks/evaluationsruns/README.md @@ -0,0 +1,235 @@ +# Beta.Observability.Evaluations.Runs + +## Overview + +### Available Operations + +* [search](#search) - Search evaluation runs with filters +* [search_all](#search_all) - Search evaluation runs across all evaluations +* [get](#get) - Get a specific evaluation run by ID +* [get_statistics](#get_statistics) - Get statistics for a specific evaluation run +* [compute_statistics](#compute_statistics) - Compute statistics for a specific evaluation run with optional filters + +## search + +Search evaluation runs with filters + +### Example Usage + + +```python +from mistralai.client import Mistral +import os + + +with Mistral( + api_key=os.getenv("MISTRAL_API_KEY", ""), +) as mistral: + + res = mistral.beta.observability.evaluations.runs.search(evaluation_slug="", page_size=50, page=1) + + # Handle response + print(res) + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| `evaluation_slug` | *str* | :heavy_check_mark: | N/A | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `run_ids` | List[*str*] | :heavy_minus_sign: | N/A | +| `evaluation_ids` | List[*str*] | :heavy_minus_sign: | N/A | +| `creator_ids` | List[*str*] | :heavy_minus_sign: | N/A | +| `project_ids` | List[*str*] | :heavy_minus_sign: | N/A | +| `ownership` | [OptionalNullable[models.RunOwnershipFilter]](../../models/runownershipfilter.md) | :heavy_minus_sign: | N/A | +| `tags` | [OptionalNullable[models.TagFilter]](../../models/tagfilter.md) | :heavy_minus_sign: | N/A | +| `score_filters` | [OptionalNullable[models.ScoreFilterGroup]](../../models/scorefiltergroup.md) | :heavy_minus_sign: | N/A | +| `goal_filters` | [OptionalNullable[models.GoalStatusFilterGroup]](../../models/goalstatusfiltergroup.md) | :heavy_minus_sign: | N/A | +| `system` | [OptionalNullable[models.SystemFilter]](../../models/systemfilter.md) | :heavy_minus_sign: | N/A | +| `metadata` | [OptionalNullable[models.MetadataFilterGroup]](../../models/metadatafiltergroup.md) | :heavy_minus_sign: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | + +### Response + +**[models.ListEvaluationRunsResponse](../../models/listevaluationrunsresponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| errors.ObservabilityError | 400, 404, 408, 409, 422 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## search_all + +Search evaluation runs across all evaluations + +### Example Usage + + +```python +from mistralai.client import Mistral +import os + + +with Mistral( + api_key=os.getenv("MISTRAL_API_KEY", ""), +) as mistral: + + res = mistral.beta.observability.evaluations.runs.search_all(page_size=50, page=1) + + # Handle response + print(res) + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `evaluation_run_filter_input` | [OptionalNullable[models.EvaluationRunFilterInput]](../../models/evaluationrunfilterinput.md) | :heavy_minus_sign: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | + +### Response + +**[models.SearchAllEvaluationRunsResponse](../../models/searchallevaluationrunsresponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| errors.ObservabilityError | 400, 404, 408, 409, 422 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## get + +Get a specific evaluation run by ID + +### Example Usage + + +```python +from mistralai.client import Mistral +import os + + +with Mistral( + api_key=os.getenv("MISTRAL_API_KEY", ""), +) as mistral: + + res = mistral.beta.observability.evaluations.runs.get(run_id="c120b634-146a-4ae3-bd38-b7a168c4c8ce") + + # Handle response + print(res) + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `run_id` | *str* | :heavy_check_mark: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | + +### Response + +**[models.EvaluationRunV2Response](../../models/evaluationrunv2response.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| errors.ObservabilityError | 400, 404, 408, 409, 422 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## get_statistics + +Get statistics for a specific evaluation run + +### Example Usage + + +```python +from mistralai.client import Mistral +import os + + +with Mistral( + api_key=os.getenv("MISTRAL_API_KEY", ""), +) as mistral: + + res = mistral.beta.observability.evaluations.runs.get_statistics(run_id="a38473a2-532a-4cb8-9320-a7f617d16595") + + # Handle response + print(res) + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `run_id` | *str* | :heavy_check_mark: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | + +### Response + +**[models.RunStatisticsResponse](../../models/runstatisticsresponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| errors.ObservabilityError | 400, 404, 408, 409, 422 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## compute_statistics + +Compute statistics for a specific evaluation run with optional filters + +### Example Usage + + +```python +from mistralai.client import Mistral +import os + + +with Mistral( + api_key=os.getenv("MISTRAL_API_KEY", ""), +) as mistral: + + res = mistral.beta.observability.evaluations.runs.compute_statistics(run_id="c5e1142f-de29-45b2-b29c-fe37e6509c8a") + + # Handle response + print(res) + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `run_id` | *str* | :heavy_check_mark: | N/A | +| `input_filters` | [OptionalNullable[models.ContentSearchFilterGroup]](../../models/contentsearchfiltergroup.md) | :heavy_minus_sign: | N/A | +| `output_filters` | [OptionalNullable[models.ContentSearchFilterGroup]](../../models/contentsearchfiltergroup.md) | :heavy_minus_sign: | N/A | +| `score_filters` | [OptionalNullable[models.ScoreFilterGroup]](../../models/scorefiltergroup.md) | :heavy_minus_sign: | N/A | +| `goal_filters` | [OptionalNullable[models.GoalStatusFilterGroup]](../../models/goalstatusfiltergroup.md) | :heavy_minus_sign: | N/A | +| `sort` | [OptionalNullable[models.Sort]](../../models/sort.md) | :heavy_minus_sign: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | + +### Response + +**[models.RunStatisticsResponse](../../models/runstatisticsresponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| errors.ObservabilityError | 400, 404, 408, 409, 422 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/files/README.md b/docs/sdks/files/README.md index d0e88f2e3..246707073 100644 --- a/docs/sdks/files/README.md +++ b/docs/sdks/files/README.md @@ -222,7 +222,7 @@ with Mistral( ### Response -**httpx.Response** +**[httpx.Response](../../models/.md)** ### Errors diff --git a/docs/sdks/fim/README.md b/docs/sdks/fim/README.md index 573200843..7bf890837 100644 --- a/docs/sdks/fim/README.md +++ b/docs/sdks/fim/README.md @@ -106,7 +106,7 @@ with Mistral( ### Response -**Union[eventstreaming.EventStream[models.CompletionEvent], eventstreaming.EventStreamAsync[models.CompletionEvent]]** +**[Union[eventstreaming.EventStream[models.CompletionEvent], eventstreaming.EventStreamAsync[models.CompletionEvent]]](../../models/.md)** ### Errors diff --git a/docs/sdks/optimizations/README.md b/docs/sdks/optimizations/README.md new file mode 100644 index 000000000..054c72338 --- /dev/null +++ b/docs/sdks/optimizations/README.md @@ -0,0 +1,140 @@ +# Beta.Observability.Evaluations.Optimizations + +## Overview + +### Available Operations + +* [list](#list) - List optimizations with optional filters +* [get](#get) - Get an optimization by id (with its anchored evaluation + project) +* [list_trials](#list_trials) - List an optimization's trials with their observation runs (paginated) + +## list + +List optimizations with optional filters + +### Example Usage + + +```python +from mistralai.client import Mistral +import os + + +with Mistral( + api_key=os.getenv("MISTRAL_API_KEY", ""), +) as mistral: + + res = mistral.beta.observability.evaluations.optimizations.list(page_size=50, page=1) + + # Handle response + print(res) + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `project` | *OptionalNullable[str]* | :heavy_minus_sign: | Filter by project slug | +| `evaluation` | *OptionalNullable[str]* | :heavy_minus_sign: | Filter by evaluation slug | +| `status` | *OptionalNullable[str]* | :heavy_minus_sign: | Filter by lifecycle status | +| `algorithm` | *OptionalNullable[str]* | :heavy_minus_sign: | Filter by algorithm | +| `tags` | List[*str*] | :heavy_minus_sign: | Filter by tags | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | + +### Response + +**[models.ListOptimizationsResponse](../../models/listoptimizationsresponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| errors.ObservabilityError | 400, 404, 408, 409, 422 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## get + +Get an optimization by id (with its anchored evaluation + project) + +### Example Usage + + +```python +from mistralai.client import Mistral +import os + + +with Mistral( + api_key=os.getenv("MISTRAL_API_KEY", ""), +) as mistral: + + res = mistral.beta.observability.evaluations.optimizations.get(optimization_id="fd7cc96b-0c32-4b79-b7e4-63786d9dcfea") + + # Handle response + print(res) + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `optimization_id` | *str* | :heavy_check_mark: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | + +### Response + +**[models.OptimizationDetail](../../models/optimizationdetail.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| errors.ObservabilityError | 400, 404, 408, 409, 422 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## list_trials + +List an optimization's trials with their observation runs (paginated) + +### Example Usage + + +```python +from mistralai.client import Mistral +import os + + +with Mistral( + api_key=os.getenv("MISTRAL_API_KEY", ""), +) as mistral: + + res = mistral.beta.observability.evaluations.optimizations.list_trials(optimization_id="54622d5d-6e77-4a86-9908-87b1f8f16424", page_size=50, page=1) + + # Handle response + print(res) + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `optimization_id` | *str* | :heavy_check_mark: | N/A | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `page` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | + +### Response + +**[models.ListOptimizationTrialsResponse](../../models/listoptimizationtrialsresponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| errors.ObservabilityError | 400, 404, 408, 409, 422 | application/json | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/speech/README.md b/docs/sdks/speech/README.md index f750cd3ac..6cadbcae8 100644 --- a/docs/sdks/speech/README.md +++ b/docs/sdks/speech/README.md @@ -35,18 +35,19 @@ with Mistral( ### Parameters -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `input` | *str* | :heavy_check_mark: | Text to generate a speech from | -| `model` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | -| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | -| `stream` | *Optional[bool]* | :heavy_minus_sign: | N/A | -| `prompt_cache_key` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | -| `voice_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The preset or custom voice to use for generating the speech. | -| `ref_audio` | *OptionalNullable[str]* | :heavy_minus_sign: | The audio reference for generating the speech. | -| `response_format` | [Optional[models.SpeechOutputFormat]](../../models/speechoutputformat.md) | :heavy_minus_sign: | N/A | -| `additional_properties` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | +| Parameter | Type | Required | Description | +| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | +| `input` | *str* | :heavy_check_mark: | Text to generate a speech from | +| `model` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `stream` | *Optional[bool]* | :heavy_minus_sign: | N/A | +| `prompt_cache_key` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `voice_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The preset or custom voice to use for generating the speech. | +| `ref_audio` | *OptionalNullable[str]* | :heavy_minus_sign: | The audio reference for generating the speech. | +| `phoneme_hints` | Dict[str, List[[models.IPAPhoneme](../../models/ipaphoneme.md)]] | :heavy_minus_sign: | Optional pronunciation hints mapping a (case-sensitive) word to its ordered list of IPA phones. | +| `response_format` | [Optional[models.SpeechOutputFormat]](../../models/speechoutputformat.md) | :heavy_minus_sign: | N/A | +| `additional_properties` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response diff --git a/docs/sdks/transcriptions/README.md b/docs/sdks/transcriptions/README.md index 7357f9e90..97703c9b4 100644 --- a/docs/sdks/transcriptions/README.md +++ b/docs/sdks/transcriptions/README.md @@ -99,7 +99,7 @@ with Mistral( ### Response -**Union[eventstreaming.EventStream[models.TranscriptionStreamEvents], eventstreaming.EventStreamAsync[models.TranscriptionStreamEvents]]** +**[Union[eventstreaming.EventStream[models.TranscriptionStreamEvents], eventstreaming.EventStreamAsync[models.TranscriptionStreamEvents]]](../../models/.md)** ### Errors diff --git a/docs/sdks/workflows/README.md b/docs/sdks/workflows/README.md index 4792615c3..5da2fd824 100644 --- a/docs/sdks/workflows/README.md +++ b/docs/sdks/workflows/README.md @@ -101,6 +101,7 @@ with Mistral( | `task_queue` | *OptionalNullable[str]* | :heavy_minus_sign: | The task queue to filter by | | `active_only` | *Optional[bool]* | :heavy_minus_sign: | Whether to only return active workflows versions | | `include_shared` | *Optional[bool]* | :heavy_minus_sign: | Whether to include shared workflow versions | +| `workflow_name` | *OptionalNullable[str]* | :heavy_minus_sign: | Exact workflow name to filter by | | `workflow_search` | *OptionalNullable[str]* | :heavy_minus_sign: | The workflow name to filter by | | `archived` | *OptionalNullable[bool]* | :heavy_minus_sign: | Filter by archived state. False=exclude archived, True=only archived, None=include all | | `with_workflow` | *Optional[bool]* | :heavy_minus_sign: | Whether to include the workflow definition | diff --git a/docs/sdks/runs/README.md b/docs/sdks/workflowsruns/README.md similarity index 100% rename from docs/sdks/runs/README.md rename to docs/sdks/workflowsruns/README.md diff --git a/packages/gcp/uv.lock b/packages/gcp/uv.lock index 37f455fa4..3026b2fba 100644 --- a/packages/gcp/uv.lock +++ b/packages/gcp/uv.lock @@ -1033,9 +1033,9 @@ wheels = [ [[package]] name = "urllib3" -version = "2.7.0" +version = "2.8.0" source = { registry = "https://pypi.org/simple/" } -sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602, upload-time = "2026-05-07T16:13:18.596Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/05/b17359e1cefb4f909b5e40b1b90a496d987258916dbbf88e842c729f510e/urllib3-2.8.0.tar.gz", hash = "sha256:63bf2ead4c879426ebf22ef2a781eeb4aa3b4ae798a0435506f8687fd5bb9b63", size = 458972, upload-time = "2026-09-15T19:29:36.253Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087, upload-time = "2026-05-07T16:13:17.151Z" }, + { url = "https://files.pythonhosted.org/packages/92/9d/c4e665119135114480843e7ab388fa94d8480650450e6f8e26b70d323a4c/urllib3-2.8.0-py3-none-any.whl", hash = "sha256:0cf3cae568d36aa9576b28dfb35f11328f1cb974ca7647d9475ebb86c75ac6e3", size = 135717, upload-time = "2026-09-15T19:29:34.577Z" }, ] diff --git a/pyproject.toml b/pyproject.toml index f7a8de096..1711f6f6b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "mistralai" -version = "3.0.0" +version = "3.1.0" description = "Python Client SDK for the Mistral AI API." authors = [{ name = "Mistral" }] requires-python = ">=3.10" diff --git a/src/mistralai/client/_version.py b/src/mistralai/client/_version.py index 09081afce..8ab8f2837 100644 --- a/src/mistralai/client/_version.py +++ b/src/mistralai/client/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "mistralai" -__version__: str = "3.0.0" +__version__: str = "3.1.0" __openapi_doc_version__: str = "1.0.0" __gen_version__: str = "2.935.1" -__user_agent__: str = "speakeasy-sdk/python 3.0.0 2.935.1 1.0.0 mistralai" +__user_agent__: str = "speakeasy-sdk/python 3.1.0 2.935.1 1.0.0 mistralai" try: if __package__ is not None: diff --git a/src/mistralai/client/connectors.py b/src/mistralai/client/connectors.py index 4de4eca01..bb3fc4a1e 100644 --- a/src/mistralai/client/connectors.py +++ b/src/mistralai/client/connectors.py @@ -34,6 +34,22 @@ def mcp_client( Requires the optional ``mcp`` dependencies. Use the returned context manager with ``async with``. + + Failures authored by Connectors Gateway itself (unknown connector, missing + credentials, upstream unreachable, ...) raise + ``mistralai.extra.connectors_gateway.ConnectorsGatewayError``, from the + ``async with`` statement or from any session call. Errors returned by the + upstream MCP server raise ``mcp.MCPError``, as with any MCP server:: + + try: + async with mistral.beta.connectors.mcp_client( + connector_id_or_name="github", + ) as mcp: + ... + except ConnectorsGatewayError as error: + ... # error.proxy_error, error.proxy_status_code, error.details + except MCPError as error: + ... # error.code, error.message """ return create_mcp_client( self.sdk_configuration, @@ -51,6 +67,12 @@ def http_client( Use the returned client with ``async with`` and make requests with paths relative to the connector's configured upstream URL. + + Failures authored by Connectors Gateway itself raise + ``mistralai.extra.connectors_gateway.ConnectorsGatewayError`` from the + request. It subclasses ``httpx2.HTTPStatusError``, so catch it before any + ``httpx2.HTTPStatusError`` handler. Error responses from the upstream API + are returned unchanged. """ return create_http_client( self.sdk_configuration, @@ -475,7 +497,7 @@ def get_auth_url( *, connector_id_or_name: str, app_return_url: OptionalNullable[str] = UNSET, - method_type: Optional[models.OutboundAuthenticationType] = None, + method_type: Optional[models.AuthenticationType] = None, credentials_name: OptionalNullable[str] = UNSET, credentials_title: OptionalNullable[str] = UNSET, github_installation_link: Optional[bool] = False, @@ -585,7 +607,7 @@ async def get_auth_url_async( *, connector_id_or_name: str, app_return_url: OptionalNullable[str] = UNSET, - method_type: Optional[models.OutboundAuthenticationType] = None, + method_type: Optional[models.AuthenticationType] = None, credentials_name: OptionalNullable[str] = UNSET, credentials_title: OptionalNullable[str] = UNSET, github_installation_link: Optional[bool] = False, @@ -2490,7 +2512,7 @@ def list_organization_credentials( self, *, connector_id_or_name: str, - auth_type: OptionalNullable[models.OutboundAuthenticationType] = UNSET, + auth_type: OptionalNullable[models.AuthenticationType] = UNSET, fetch_default: Optional[bool] = False, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -2591,7 +2613,7 @@ async def list_organization_credentials_async( self, *, connector_id_or_name: str, - auth_type: OptionalNullable[models.OutboundAuthenticationType] = UNSET, + auth_type: OptionalNullable[models.AuthenticationType] = UNSET, fetch_default: Optional[bool] = False, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -2692,7 +2714,7 @@ def list_workspace_credentials( self, *, connector_id_or_name: str, - auth_type: OptionalNullable[models.OutboundAuthenticationType] = UNSET, + auth_type: OptionalNullable[models.AuthenticationType] = UNSET, fetch_default: Optional[bool] = False, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -2793,7 +2815,7 @@ async def list_workspace_credentials_async( self, *, connector_id_or_name: str, - auth_type: OptionalNullable[models.OutboundAuthenticationType] = UNSET, + auth_type: OptionalNullable[models.AuthenticationType] = UNSET, fetch_default: Optional[bool] = False, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -2894,7 +2916,7 @@ def list_user_credentials( self, *, connector_id_or_name: str, - auth_type: OptionalNullable[models.OutboundAuthenticationType] = UNSET, + auth_type: OptionalNullable[models.AuthenticationType] = UNSET, fetch_default: Optional[bool] = False, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -2995,7 +3017,7 @@ async def list_user_credentials_async( self, *, connector_id_or_name: str, - auth_type: OptionalNullable[models.OutboundAuthenticationType] = UNSET, + auth_type: OptionalNullable[models.AuthenticationType] = UNSET, fetch_default: Optional[bool] = False, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, diff --git a/src/mistralai/client/datasets.py b/src/mistralai/client/datasets.py index ecf6aef70..57699f5c5 100644 --- a/src/mistralai/client/datasets.py +++ b/src/mistralai/client/datasets.py @@ -4,7 +4,7 @@ from .sdkconfiguration import SDKConfiguration from mistralai.client import errors, models, utils from mistralai.client._hooks import HookContext -from mistralai.client.records import Records +from mistralai.client.datasets_records import DatasetsRecords from mistralai.client.types import OptionalNullable, UNSET from mistralai.client.utils import get_security_from_env from mistralai.client.utils.unmarshal_json_response import unmarshal_json_response @@ -12,7 +12,7 @@ class Datasets(BaseSDK): - records: Records + records: DatasetsRecords def __init__( self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None @@ -22,7 +22,9 @@ def __init__( self._init_sdks() def _init_sdks(self): - self.records = Records(self.sdk_configuration, parent_ref=self.parent_ref) + self.records = DatasetsRecords( + self.sdk_configuration, parent_ref=self.parent_ref + ) def create( self, @@ -437,9 +439,9 @@ def fetch( timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, ) -> models.DatasetPreview: - r"""Get dataset by id + r"""Get dataset by ID or slug - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -532,9 +534,9 @@ async def fetch_async( timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, ) -> models.DatasetPreview: - r"""Get dataset by id + r"""Get dataset by ID or slug - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -629,7 +631,7 @@ def delete( ): r"""Delete a dataset - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -724,7 +726,7 @@ async def delete_async( ): r"""Delete a dataset - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -821,7 +823,7 @@ def update( ) -> models.DatasetPreview: r"""Patch dataset - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param name: :param description: :param retries: Override the default retry configuration for this method @@ -931,7 +933,7 @@ async def update_async( ) -> models.DatasetPreview: r"""Patch dataset - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param name: :param description: :param retries: Override the default retry configuration for this method @@ -1041,7 +1043,7 @@ def list_records( ) -> models.ListDatasetRecordsResponse: r"""List existing records in the dataset - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param page_size: :param page: :param retries: Override the default retry configuration for this method @@ -1144,7 +1146,7 @@ async def list_records_async( ) -> models.ListDatasetRecordsResponse: r"""List existing records in the dataset - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param page_size: :param page: :param retries: Override the default retry configuration for this method @@ -1248,7 +1250,7 @@ def create_record( ) -> models.DatasetRecord: r"""Add a record to the dataset - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param payload: Caller-authored input object stored on a dataset record. :param properties: :param source: Caller-declared channel that initiated record creation. This value does not certify that the payload is an unmodified copy of its source. @@ -1361,7 +1363,7 @@ async def create_record_async( ) -> models.DatasetRecord: r"""Add a record to the dataset - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param payload: Caller-authored input object stored on a dataset record. :param properties: :param source: Caller-declared channel that initiated record creation. This value does not certify that the payload is an unmodified copy of its source. @@ -1472,7 +1474,7 @@ def import_from_file( ) -> models.DatasetImportTask: r"""Populate the dataset with records from an uploaded file - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param file_id: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method @@ -1579,7 +1581,7 @@ async def import_from_file_async( ) -> models.DatasetImportTask: r"""Populate the dataset with records from an uploaded file - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param file_id: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method @@ -1686,7 +1688,7 @@ def import_from_playground( ) -> models.DatasetImportTask: r"""Populate the dataset with records from playground conversations - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param conversation_ids: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method @@ -1793,7 +1795,7 @@ async def import_from_playground_async( ) -> models.DatasetImportTask: r"""Populate the dataset with records from playground conversations - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param conversation_ids: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method @@ -1909,7 +1911,7 @@ def import_from_spans( Starts an asynchronous import of the requested telemetry spans. References not returned by the tenant-scoped telemetry query are skipped without distinguishing absence from access restrictions. - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param span_references: Spans to attempt to import; unavailable references are skipped, and trace and span IDs are attached as record properties automatically. :param mapping_contract: Mapping rules applied independently to every requested telemetry span. @@ -2035,7 +2037,7 @@ async def import_from_spans_async( Starts an asynchronous import of the requested telemetry spans. References not returned by the tenant-scoped telemetry query are skipped without distinguishing absence from access restrictions. - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param span_references: Spans to attempt to import; unavailable references are skipped, and trace and span IDs are attached as record properties automatically. :param mapping_contract: Mapping rules applied independently to every requested telemetry span. @@ -2152,7 +2154,7 @@ def import_from_dataset_records( ) -> models.DatasetImportTask: r"""Populate the dataset with records from another dataset - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param dataset_record_ids: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method @@ -2259,7 +2261,7 @@ async def import_from_dataset_records_async( ) -> models.DatasetImportTask: r"""Populate the dataset with records from another dataset - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param dataset_record_ids: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method @@ -2365,7 +2367,7 @@ def export_to_jsonl( ) -> models.ExportDatasetResponse: r"""Export to the Files API and retrieve presigned URL to download the resulting JSONL file - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -2460,7 +2462,7 @@ async def export_to_jsonl_async( ) -> models.ExportDatasetResponse: r"""Export to the Files API and retrieve presigned URL to download the resulting JSONL file - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -2556,7 +2558,7 @@ def fetch_task( ) -> models.DatasetImportTask: r"""Get status of a dataset import task - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param task_id: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method @@ -2654,7 +2656,7 @@ async def fetch_task_async( ) -> models.DatasetImportTask: r"""Get status of a dataset import task - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param task_id: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method @@ -2753,7 +2755,7 @@ def list_tasks( ) -> models.ListDatasetImportTasksResponse: r"""List import tasks for the given dataset - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param page_size: :param page: :param retries: Override the default retry configuration for this method @@ -2858,7 +2860,7 @@ async def list_tasks_async( ) -> models.ListDatasetImportTasksResponse: r"""List import tasks for the given dataset - :param dataset_id: + :param dataset_id: Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs. :param page_size: :param page: :param retries: Override the default retry configuration for this method diff --git a/src/mistralai/client/records.py b/src/mistralai/client/datasets_records.py similarity index 99% rename from src/mistralai/client/records.py rename to src/mistralai/client/datasets_records.py index aad772f64..3c56085cb 100644 --- a/src/mistralai/client/records.py +++ b/src/mistralai/client/datasets_records.py @@ -9,7 +9,7 @@ from typing import Any, Dict, Iterable, List, Mapping, Optional, Union -class Records(BaseSDK): +class DatasetsRecords(BaseSDK): def fetch( self, *, diff --git a/src/mistralai/client/evaluations.py b/src/mistralai/client/evaluations.py index 9376eda0a..7ea645a19 100644 --- a/src/mistralai/client/evaluations.py +++ b/src/mistralai/client/evaluations.py @@ -1,8 +1,13 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from .basesdk import BaseSDK +from .sdkconfiguration import SDKConfiguration from mistralai.client import errors, models, utils from mistralai.client._hooks import HookContext +from mistralai.client.evaluations_projects import EvaluationsProjects +from mistralai.client.evaluations_records import EvaluationsRecords +from mistralai.client.evaluations_runs import EvaluationsRuns +from mistralai.client.optimizations import Optimizations from mistralai.client.types import OptionalNullable, UNSET from mistralai.client.utils import get_security_from_env from mistralai.client.utils.unmarshal_json_response import unmarshal_json_response @@ -10,6 +15,30 @@ class Evaluations(BaseSDK): + projects: EvaluationsProjects + runs: EvaluationsRuns + records: EvaluationsRecords + optimizations: Optimizations + + def __init__( + self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None + ) -> None: + BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref) + self.sdk_configuration = sdk_config + self._init_sdks() + + def _init_sdks(self): + self.projects = EvaluationsProjects( + self.sdk_configuration, parent_ref=self.parent_ref + ) + self.runs = EvaluationsRuns(self.sdk_configuration, parent_ref=self.parent_ref) + self.records = EvaluationsRecords( + self.sdk_configuration, parent_ref=self.parent_ref + ) + self.optimizations = Optimizations( + self.sdk_configuration, parent_ref=self.parent_ref + ) + def create_pipeline_config( self, *, @@ -1750,16 +1779,21 @@ def update_pipeline( self, *, pipeline_id: str, - name: str, - selectors: Union[ - Iterable[models.PipelineConfigSelector], - Iterable[models.PipelineConfigSelectorTypedDict], - ], - definitions: Union[ - Iterable[models.JudgeDefinition], Iterable[models.JudgeDefinitionTypedDict] - ], - enabled: bool, + name: Optional[str] = None, description: OptionalNullable[str] = UNSET, + selectors: Optional[ + Union[ + Iterable[models.PipelineConfigSelector], + Iterable[models.PipelineConfigSelectorTypedDict], + ] + ] = None, + definitions: Optional[ + Union[ + Iterable[models.JudgeDefinition], + Iterable[models.JudgeDefinitionTypedDict], + ] + ] = None, + enabled: Optional[bool] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, @@ -1769,10 +1803,10 @@ def update_pipeline( :param pipeline_id: :param name: + :param description: :param selectors: :param definitions: :param enabled: - :param description: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -1797,10 +1831,10 @@ def update_pipeline( name=name, description=description, selectors=utils.get_pydantic_model( - selectors, List[models.PipelineConfigSelector] + selectors, Optional[List[models.PipelineConfigSelector]] ), definitions=utils.get_pydantic_model( - definitions, List[models.JudgeDefinition] + definitions, Optional[List[models.JudgeDefinition]] ), enabled=enabled, ), @@ -1878,16 +1912,21 @@ async def update_pipeline_async( self, *, pipeline_id: str, - name: str, - selectors: Union[ - Iterable[models.PipelineConfigSelector], - Iterable[models.PipelineConfigSelectorTypedDict], - ], - definitions: Union[ - Iterable[models.JudgeDefinition], Iterable[models.JudgeDefinitionTypedDict] - ], - enabled: bool, + name: Optional[str] = None, description: OptionalNullable[str] = UNSET, + selectors: Optional[ + Union[ + Iterable[models.PipelineConfigSelector], + Iterable[models.PipelineConfigSelectorTypedDict], + ] + ] = None, + definitions: Optional[ + Union[ + Iterable[models.JudgeDefinition], + Iterable[models.JudgeDefinitionTypedDict], + ] + ] = None, + enabled: Optional[bool] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, @@ -1897,10 +1936,10 @@ async def update_pipeline_async( :param pipeline_id: :param name: + :param description: :param selectors: :param definitions: :param enabled: - :param description: :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -1925,10 +1964,10 @@ async def update_pipeline_async( name=name, description=description, selectors=utils.get_pydantic_model( - selectors, List[models.PipelineConfigSelector] + selectors, Optional[List[models.PipelineConfigSelector]] ), definitions=utils.get_pydantic_model( - definitions, List[models.JudgeDefinition] + definitions, Optional[List[models.JudgeDefinition]] ), enabled=enabled, ), @@ -2191,3 +2230,399 @@ async def delete_pipeline_async( raise errors.SDKError("API error occurred", http_res, http_res_text) raise errors.SDKError("Unexpected response received", http_res) + + def list( + self, + *, + project_slug: str, + page_size: Optional[int] = 50, + page: Optional[int] = 1, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.EvaluationsV2: + r"""List evaluations for a project + + :param project_slug: + :param page_size: + :param page: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.GetProjectEvaluationsV2V1ObservabilityProjectsProjectSlugEvaluationsV2GetRequest( + project_slug=project_slug, + page_size=page_size, + page=page, + ) + + req = self._build_request( + method="GET", + path="/v1/observability/projects/{project_slug}/evaluations_v2", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = self.do_request( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="get_project_evaluations_v2_v1_observability_projects__project_slug__evaluations_v2_get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.EvaluationsV2, http_res) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + async def list_async( + self, + *, + project_slug: str, + page_size: Optional[int] = 50, + page: Optional[int] = 1, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.EvaluationsV2: + r"""List evaluations for a project + + :param project_slug: + :param page_size: + :param page: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.GetProjectEvaluationsV2V1ObservabilityProjectsProjectSlugEvaluationsV2GetRequest( + project_slug=project_slug, + page_size=page_size, + page=page, + ) + + req = self._build_request_async( + method="GET", + path="/v1/observability/projects/{project_slug}/evaluations_v2", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = await self.do_request_async( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="get_project_evaluations_v2_v1_observability_projects__project_slug__evaluations_v2_get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.EvaluationsV2, http_res) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + def get( + self, + *, + evaluation_slug: str, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.EvaluationV2: + r"""Get evaluation by slug + + :param evaluation_slug: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = ( + models.GetEvaluationV2V1ObservabilityEvaluationsV2EvaluationSlugGetRequest( + evaluation_slug=evaluation_slug, + ) + ) + + req = self._build_request( + method="GET", + path="/v1/observability/evaluations_v2/{evaluation_slug}", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = self.do_request( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="get_evaluation_v2_v1_observability_evaluations_v2__evaluation_slug__get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.EvaluationV2, http_res) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + async def get_async( + self, + *, + evaluation_slug: str, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.EvaluationV2: + r"""Get evaluation by slug + + :param evaluation_slug: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = ( + models.GetEvaluationV2V1ObservabilityEvaluationsV2EvaluationSlugGetRequest( + evaluation_slug=evaluation_slug, + ) + ) + + req = self._build_request_async( + method="GET", + path="/v1/observability/evaluations_v2/{evaluation_slug}", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = await self.do_request_async( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="get_evaluation_v2_v1_observability_evaluations_v2__evaluation_slug__get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.EvaluationV2, http_res) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/mistralai/client/evaluations_projects.py b/src/mistralai/client/evaluations_projects.py new file mode 100644 index 000000000..08e2dfcd7 --- /dev/null +++ b/src/mistralai/client/evaluations_projects.py @@ -0,0 +1,403 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from .basesdk import BaseSDK +from mistralai.client import errors, models, utils +from mistralai.client._hooks import HookContext +from mistralai.client.types import OptionalNullable, UNSET +from mistralai.client.utils import get_security_from_env +from mistralai.client.utils.unmarshal_json_response import unmarshal_json_response +from typing import Any, Mapping, Optional + + +class EvaluationsProjects(BaseSDK): + def list( + self, + *, + q: OptionalNullable[str] = UNSET, + page_size: Optional[int] = 50, + page: Optional[int] = 1, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.Projects: + r"""List projects + + :param q: Case-insensitive filter on project name/slug. + :param page_size: + :param page: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.GetProjectsV1ObservabilityProjectsGetRequest( + q=q, + page_size=page_size, + page=page, + ) + + req = self._build_request( + method="GET", + path="/v1/observability/projects", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=False, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = self.do_request( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="get_projects_v1_observability_projects_get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.projects"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.Projects, http_res) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + async def list_async( + self, + *, + q: OptionalNullable[str] = UNSET, + page_size: Optional[int] = 50, + page: Optional[int] = 1, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.Projects: + r"""List projects + + :param q: Case-insensitive filter on project name/slug. + :param page_size: + :param page: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.GetProjectsV1ObservabilityProjectsGetRequest( + q=q, + page_size=page_size, + page=page, + ) + + req = self._build_request_async( + method="GET", + path="/v1/observability/projects", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=False, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = await self.do_request_async( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="get_projects_v1_observability_projects_get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.projects"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.Projects, http_res) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + def get( + self, + *, + project_slug: str, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.Project: + r"""Get project by slug + + :param project_slug: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.GetProjectV1ObservabilityProjectsProjectSlugGetRequest( + project_slug=project_slug, + ) + + req = self._build_request( + method="GET", + path="/v1/observability/projects/{project_slug}", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = self.do_request( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="get_project_v1_observability_projects__project_slug__get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.projects"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.Project, http_res) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + async def get_async( + self, + *, + project_slug: str, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.Project: + r"""Get project by slug + + :param project_slug: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.GetProjectV1ObservabilityProjectsProjectSlugGetRequest( + project_slug=project_slug, + ) + + req = self._build_request_async( + method="GET", + path="/v1/observability/projects/{project_slug}", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = await self.do_request_async( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="get_project_v1_observability_projects__project_slug__get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.projects"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.Project, http_res) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/mistralai/client/evaluations_records.py b/src/mistralai/client/evaluations_records.py new file mode 100644 index 000000000..4386edd7f --- /dev/null +++ b/src/mistralai/client/evaluations_records.py @@ -0,0 +1,513 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from .basesdk import BaseSDK +from mistralai.client import errors, models, utils +from mistralai.client._hooks import HookContext +from mistralai.client.types import OptionalNullable, UNSET +from mistralai.client.utils import get_security_from_env +from mistralai.client.utils.unmarshal_json_response import unmarshal_json_response +from typing import Any, Mapping, Optional, Union + + +class EvaluationsRecords(BaseSDK): + def get( + self, + *, + run_id: str, + record_id: str, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.EvaluationRunRecordV2Response: + r"""Get a specific record from an evaluation run + + :param run_id: + :param record_id: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.GetEvaluationRunRecordV2V1ObservabilityEvaluationRunsV2RunIDRecordsRecordIDGetRequest( + run_id=run_id, + record_id=record_id, + ) + + req = self._build_request( + method="GET", + path="/v1/observability/evaluation-runs_v2/{run_id}/records/{record_id}", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = self.do_request( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="get_evaluation_run_record_v2_v1_observability_evaluation_runs_v2__run_id__records__record_id__get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.records"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response( + models.EvaluationRunRecordV2Response, http_res + ) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + async def get_async( + self, + *, + run_id: str, + record_id: str, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.EvaluationRunRecordV2Response: + r"""Get a specific record from an evaluation run + + :param run_id: + :param record_id: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.GetEvaluationRunRecordV2V1ObservabilityEvaluationRunsV2RunIDRecordsRecordIDGetRequest( + run_id=run_id, + record_id=record_id, + ) + + req = self._build_request_async( + method="GET", + path="/v1/observability/evaluation-runs_v2/{run_id}/records/{record_id}", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = await self.do_request_async( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="get_evaluation_run_record_v2_v1_observability_evaluation_runs_v2__run_id__records__record_id__get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.records"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response( + models.EvaluationRunRecordV2Response, http_res + ) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + def search( + self, + *, + run_id: str, + page_size: Optional[int] = 50, + page: Optional[int] = 1, + input_filters: OptionalNullable[ + Union[ + models.ContentSearchFilterGroup, + models.ContentSearchFilterGroupTypedDict, + ] + ] = UNSET, + output_filters: OptionalNullable[ + Union[ + models.ContentSearchFilterGroup, + models.ContentSearchFilterGroupTypedDict, + ] + ] = UNSET, + score_filters: OptionalNullable[ + Union[models.ScoreFilterGroup, models.ScoreFilterGroupTypedDict] + ] = UNSET, + goal_filters: OptionalNullable[ + Union[models.GoalStatusFilterGroup, models.GoalStatusFilterGroupTypedDict] + ] = UNSET, + sort: OptionalNullable[Union[models.Sort, models.SortTypedDict]] = UNSET, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.ListEvaluationRunRecordsResponse: + r"""Search records for an evaluation run with content filters + + :param run_id: + :param page_size: + :param page: + :param input_filters: + :param output_filters: + :param score_filters: + :param goal_filters: + :param sort: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.SearchEvaluationRunRecordsV2V1ObservabilityEvaluationRunsV2RunIDRecordsSearchPostRequest( + run_id=run_id, + page_size=page_size, + page=page, + evaluation_run_record_filter_input=models.EvaluationRunRecordFilterInput( + input_filters=utils.get_pydantic_model( + input_filters, OptionalNullable[models.ContentSearchFilterGroup] + ), + output_filters=utils.get_pydantic_model( + output_filters, OptionalNullable[models.ContentSearchFilterGroup] + ), + score_filters=utils.get_pydantic_model( + score_filters, OptionalNullable[models.ScoreFilterGroup] + ), + goal_filters=utils.get_pydantic_model( + goal_filters, OptionalNullable[models.GoalStatusFilterGroup] + ), + sort=utils.get_pydantic_model(sort, OptionalNullable[models.Sort]), + ), + ) + + req = self._build_request( + method="POST", + path="/v1/observability/evaluation-runs_v2/{run_id}/records/search", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + get_serialized_body=lambda: utils.serialize_request_body( + request.evaluation_run_record_filter_input + if request is not None + else None, + True, + True, + "json", + OptionalNullable[models.EvaluationRunRecordFilterInput], + ), + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = self.do_request( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="search_evaluation_run_records_v2_v1_observability_evaluation_runs_v2__run_id__records_search_post", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.records"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response( + models.ListEvaluationRunRecordsResponse, http_res + ) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + async def search_async( + self, + *, + run_id: str, + page_size: Optional[int] = 50, + page: Optional[int] = 1, + input_filters: OptionalNullable[ + Union[ + models.ContentSearchFilterGroup, + models.ContentSearchFilterGroupTypedDict, + ] + ] = UNSET, + output_filters: OptionalNullable[ + Union[ + models.ContentSearchFilterGroup, + models.ContentSearchFilterGroupTypedDict, + ] + ] = UNSET, + score_filters: OptionalNullable[ + Union[models.ScoreFilterGroup, models.ScoreFilterGroupTypedDict] + ] = UNSET, + goal_filters: OptionalNullable[ + Union[models.GoalStatusFilterGroup, models.GoalStatusFilterGroupTypedDict] + ] = UNSET, + sort: OptionalNullable[Union[models.Sort, models.SortTypedDict]] = UNSET, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.ListEvaluationRunRecordsResponse: + r"""Search records for an evaluation run with content filters + + :param run_id: + :param page_size: + :param page: + :param input_filters: + :param output_filters: + :param score_filters: + :param goal_filters: + :param sort: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.SearchEvaluationRunRecordsV2V1ObservabilityEvaluationRunsV2RunIDRecordsSearchPostRequest( + run_id=run_id, + page_size=page_size, + page=page, + evaluation_run_record_filter_input=models.EvaluationRunRecordFilterInput( + input_filters=utils.get_pydantic_model( + input_filters, OptionalNullable[models.ContentSearchFilterGroup] + ), + output_filters=utils.get_pydantic_model( + output_filters, OptionalNullable[models.ContentSearchFilterGroup] + ), + score_filters=utils.get_pydantic_model( + score_filters, OptionalNullable[models.ScoreFilterGroup] + ), + goal_filters=utils.get_pydantic_model( + goal_filters, OptionalNullable[models.GoalStatusFilterGroup] + ), + sort=utils.get_pydantic_model(sort, OptionalNullable[models.Sort]), + ), + ) + + req = self._build_request_async( + method="POST", + path="/v1/observability/evaluation-runs_v2/{run_id}/records/search", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + get_serialized_body=lambda: utils.serialize_request_body( + request.evaluation_run_record_filter_input + if request is not None + else None, + True, + True, + "json", + OptionalNullable[models.EvaluationRunRecordFilterInput], + ), + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = await self.do_request_async( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="search_evaluation_run_records_v2_v1_observability_evaluation_runs_v2__run_id__records_search_post", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.records"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response( + models.ListEvaluationRunRecordsResponse, http_res + ) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/mistralai/client/evaluations_runs.py b/src/mistralai/client/evaluations_runs.py new file mode 100644 index 000000000..697a462ce --- /dev/null +++ b/src/mistralai/client/evaluations_runs.py @@ -0,0 +1,1245 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from .basesdk import BaseSDK +from mistralai.client import errors, models, utils +from mistralai.client._hooks import HookContext +from mistralai.client.types import OptionalNullable, UNSET +from mistralai.client.utils import get_security_from_env +from mistralai.client.utils.unmarshal_json_response import unmarshal_json_response +from typing import Any, Iterable, List, Mapping, Optional, Union + + +class EvaluationsRuns(BaseSDK): + def search( + self, + *, + evaluation_slug: str, + page_size: Optional[int] = 50, + page: Optional[int] = 1, + run_ids: OptionalNullable[Iterable[str]] = UNSET, + evaluation_ids: OptionalNullable[Iterable[str]] = UNSET, + creator_ids: OptionalNullable[Iterable[str]] = UNSET, + project_ids: OptionalNullable[Iterable[str]] = UNSET, + ownership: OptionalNullable[ + Union[models.RunOwnershipFilter, models.RunOwnershipFilterTypedDict] + ] = UNSET, + tags: OptionalNullable[ + Union[models.TagFilter, models.TagFilterTypedDict] + ] = UNSET, + score_filters: OptionalNullable[ + Union[models.ScoreFilterGroup, models.ScoreFilterGroupTypedDict] + ] = UNSET, + goal_filters: OptionalNullable[ + Union[models.GoalStatusFilterGroup, models.GoalStatusFilterGroupTypedDict] + ] = UNSET, + system: OptionalNullable[ + Union[models.SystemFilter, models.SystemFilterTypedDict] + ] = UNSET, + metadata: OptionalNullable[ + Union[models.MetadataFilterGroup, models.MetadataFilterGroupTypedDict] + ] = UNSET, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.ListEvaluationRunsResponse: + r"""Search evaluation runs with filters + + :param evaluation_slug: + :param page_size: + :param page: + :param run_ids: + :param evaluation_ids: + :param creator_ids: + :param project_ids: + :param ownership: + :param tags: + :param score_filters: + :param goal_filters: + :param system: + :param metadata: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.SearchEvaluationRunsV2V1ObservabilityEvaluationsV2EvaluationSlugRunsSearchPostRequest( + evaluation_slug=evaluation_slug, + page_size=page_size, + page=page, + evaluation_run_filter_input=models.EvaluationRunFilterInput( + run_ids=utils.unmarshal(run_ids, OptionalNullable[List[str]]), + evaluation_ids=utils.unmarshal( + evaluation_ids, OptionalNullable[List[str]] + ), + creator_ids=utils.unmarshal(creator_ids, OptionalNullable[List[str]]), + project_ids=utils.unmarshal(project_ids, OptionalNullable[List[str]]), + ownership=utils.get_pydantic_model( + ownership, OptionalNullable[models.RunOwnershipFilter] + ), + tags=utils.get_pydantic_model(tags, OptionalNullable[models.TagFilter]), + score_filters=utils.get_pydantic_model( + score_filters, OptionalNullable[models.ScoreFilterGroup] + ), + goal_filters=utils.get_pydantic_model( + goal_filters, OptionalNullable[models.GoalStatusFilterGroup] + ), + system=utils.get_pydantic_model( + system, OptionalNullable[models.SystemFilter] + ), + metadata=utils.get_pydantic_model( + metadata, OptionalNullable[models.MetadataFilterGroup] + ), + ), + ) + + req = self._build_request( + method="POST", + path="/v1/observability/evaluations_v2/{evaluation_slug}/runs/search", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + get_serialized_body=lambda: utils.serialize_request_body( + request.evaluation_run_filter_input if request is not None else None, + True, + True, + "json", + OptionalNullable[models.EvaluationRunFilterInput], + ), + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = self.do_request( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="search_evaluation_runs_v2_v1_observability_evaluations_v2__evaluation_slug__runs_search_post", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.runs"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.ListEvaluationRunsResponse, http_res) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + async def search_async( + self, + *, + evaluation_slug: str, + page_size: Optional[int] = 50, + page: Optional[int] = 1, + run_ids: OptionalNullable[Iterable[str]] = UNSET, + evaluation_ids: OptionalNullable[Iterable[str]] = UNSET, + creator_ids: OptionalNullable[Iterable[str]] = UNSET, + project_ids: OptionalNullable[Iterable[str]] = UNSET, + ownership: OptionalNullable[ + Union[models.RunOwnershipFilter, models.RunOwnershipFilterTypedDict] + ] = UNSET, + tags: OptionalNullable[ + Union[models.TagFilter, models.TagFilterTypedDict] + ] = UNSET, + score_filters: OptionalNullable[ + Union[models.ScoreFilterGroup, models.ScoreFilterGroupTypedDict] + ] = UNSET, + goal_filters: OptionalNullable[ + Union[models.GoalStatusFilterGroup, models.GoalStatusFilterGroupTypedDict] + ] = UNSET, + system: OptionalNullable[ + Union[models.SystemFilter, models.SystemFilterTypedDict] + ] = UNSET, + metadata: OptionalNullable[ + Union[models.MetadataFilterGroup, models.MetadataFilterGroupTypedDict] + ] = UNSET, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.ListEvaluationRunsResponse: + r"""Search evaluation runs with filters + + :param evaluation_slug: + :param page_size: + :param page: + :param run_ids: + :param evaluation_ids: + :param creator_ids: + :param project_ids: + :param ownership: + :param tags: + :param score_filters: + :param goal_filters: + :param system: + :param metadata: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.SearchEvaluationRunsV2V1ObservabilityEvaluationsV2EvaluationSlugRunsSearchPostRequest( + evaluation_slug=evaluation_slug, + page_size=page_size, + page=page, + evaluation_run_filter_input=models.EvaluationRunFilterInput( + run_ids=utils.unmarshal(run_ids, OptionalNullable[List[str]]), + evaluation_ids=utils.unmarshal( + evaluation_ids, OptionalNullable[List[str]] + ), + creator_ids=utils.unmarshal(creator_ids, OptionalNullable[List[str]]), + project_ids=utils.unmarshal(project_ids, OptionalNullable[List[str]]), + ownership=utils.get_pydantic_model( + ownership, OptionalNullable[models.RunOwnershipFilter] + ), + tags=utils.get_pydantic_model(tags, OptionalNullable[models.TagFilter]), + score_filters=utils.get_pydantic_model( + score_filters, OptionalNullable[models.ScoreFilterGroup] + ), + goal_filters=utils.get_pydantic_model( + goal_filters, OptionalNullable[models.GoalStatusFilterGroup] + ), + system=utils.get_pydantic_model( + system, OptionalNullable[models.SystemFilter] + ), + metadata=utils.get_pydantic_model( + metadata, OptionalNullable[models.MetadataFilterGroup] + ), + ), + ) + + req = self._build_request_async( + method="POST", + path="/v1/observability/evaluations_v2/{evaluation_slug}/runs/search", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + get_serialized_body=lambda: utils.serialize_request_body( + request.evaluation_run_filter_input if request is not None else None, + True, + True, + "json", + OptionalNullable[models.EvaluationRunFilterInput], + ), + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = await self.do_request_async( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="search_evaluation_runs_v2_v1_observability_evaluations_v2__evaluation_slug__runs_search_post", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.runs"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.ListEvaluationRunsResponse, http_res) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + def search_all( + self, + *, + page_size: Optional[int] = 50, + page: Optional[int] = 1, + evaluation_run_filter_input: OptionalNullable[ + Union[ + models.EvaluationRunFilterInput, + models.EvaluationRunFilterInputTypedDict, + ] + ] = UNSET, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.SearchAllEvaluationRunsResponse: + r"""Search evaluation runs across all evaluations + + :param page_size: + :param page: + :param evaluation_run_filter_input: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.SearchAllEvaluationRunsV2V1ObservabilityEvaluationRunsV2SearchPostRequest( + page_size=page_size, + page=page, + evaluation_run_filter_input=utils.get_pydantic_model( + evaluation_run_filter_input, + OptionalNullable[models.EvaluationRunFilterInput], + ), + ) + + req = self._build_request( + method="POST", + path="/v1/observability/evaluation-runs_v2/search", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=False, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + get_serialized_body=lambda: utils.serialize_request_body( + request.evaluation_run_filter_input if request is not None else None, + True, + True, + "json", + OptionalNullable[models.EvaluationRunFilterInput], + ), + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = self.do_request( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="search_all_evaluation_runs_v2_v1_observability_evaluation_runs_v2_search_post", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.runs"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response( + models.SearchAllEvaluationRunsResponse, http_res + ) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + async def search_all_async( + self, + *, + page_size: Optional[int] = 50, + page: Optional[int] = 1, + evaluation_run_filter_input: OptionalNullable[ + Union[ + models.EvaluationRunFilterInput, + models.EvaluationRunFilterInputTypedDict, + ] + ] = UNSET, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.SearchAllEvaluationRunsResponse: + r"""Search evaluation runs across all evaluations + + :param page_size: + :param page: + :param evaluation_run_filter_input: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.SearchAllEvaluationRunsV2V1ObservabilityEvaluationRunsV2SearchPostRequest( + page_size=page_size, + page=page, + evaluation_run_filter_input=utils.get_pydantic_model( + evaluation_run_filter_input, + OptionalNullable[models.EvaluationRunFilterInput], + ), + ) + + req = self._build_request_async( + method="POST", + path="/v1/observability/evaluation-runs_v2/search", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=False, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + get_serialized_body=lambda: utils.serialize_request_body( + request.evaluation_run_filter_input if request is not None else None, + True, + True, + "json", + OptionalNullable[models.EvaluationRunFilterInput], + ), + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = await self.do_request_async( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="search_all_evaluation_runs_v2_v1_observability_evaluation_runs_v2_search_post", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.runs"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response( + models.SearchAllEvaluationRunsResponse, http_res + ) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + def get( + self, + *, + run_id: str, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.EvaluationRunV2Response: + r"""Get a specific evaluation run by ID + + :param run_id: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = ( + models.GetEvaluationRunV2V1ObservabilityEvaluationRunsV2RunIDGetRequest( + run_id=run_id, + ) + ) + + req = self._build_request( + method="GET", + path="/v1/observability/evaluation-runs_v2/{run_id}", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = self.do_request( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="get_evaluation_run_v2_v1_observability_evaluation_runs_v2__run_id__get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.runs"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.EvaluationRunV2Response, http_res) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + async def get_async( + self, + *, + run_id: str, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.EvaluationRunV2Response: + r"""Get a specific evaluation run by ID + + :param run_id: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = ( + models.GetEvaluationRunV2V1ObservabilityEvaluationRunsV2RunIDGetRequest( + run_id=run_id, + ) + ) + + req = self._build_request_async( + method="GET", + path="/v1/observability/evaluation-runs_v2/{run_id}", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = await self.do_request_async( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="get_evaluation_run_v2_v1_observability_evaluation_runs_v2__run_id__get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.runs"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.EvaluationRunV2Response, http_res) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + def get_statistics( + self, + *, + run_id: str, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.RunStatisticsResponse: + r"""Get statistics for a specific evaluation run + + :param run_id: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.GetSingleEvaluationRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsGetRequest( + run_id=run_id, + ) + + req = self._build_request( + method="GET", + path="/v1/observability/evaluation-runs_v2/{run_id}/statistics", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = self.do_request( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="get_single_evaluation_run_statistics_v2_v1_observability_evaluation_runs_v2__run_id__statistics_get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.runs"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.RunStatisticsResponse, http_res) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + async def get_statistics_async( + self, + *, + run_id: str, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.RunStatisticsResponse: + r"""Get statistics for a specific evaluation run + + :param run_id: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.GetSingleEvaluationRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsGetRequest( + run_id=run_id, + ) + + req = self._build_request_async( + method="GET", + path="/v1/observability/evaluation-runs_v2/{run_id}/statistics", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = await self.do_request_async( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="get_single_evaluation_run_statistics_v2_v1_observability_evaluation_runs_v2__run_id__statistics_get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.runs"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.RunStatisticsResponse, http_res) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + def compute_statistics( + self, + *, + run_id: str, + input_filters: OptionalNullable[ + Union[ + models.ContentSearchFilterGroup, + models.ContentSearchFilterGroupTypedDict, + ] + ] = UNSET, + output_filters: OptionalNullable[ + Union[ + models.ContentSearchFilterGroup, + models.ContentSearchFilterGroupTypedDict, + ] + ] = UNSET, + score_filters: OptionalNullable[ + Union[models.ScoreFilterGroup, models.ScoreFilterGroupTypedDict] + ] = UNSET, + goal_filters: OptionalNullable[ + Union[models.GoalStatusFilterGroup, models.GoalStatusFilterGroupTypedDict] + ] = UNSET, + sort: OptionalNullable[Union[models.Sort, models.SortTypedDict]] = UNSET, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.RunStatisticsResponse: + r"""Compute statistics for a specific evaluation run with optional filters + + :param run_id: + :param input_filters: + :param output_filters: + :param score_filters: + :param goal_filters: + :param sort: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.ComputeFilteredRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsComputePostRequest( + run_id=run_id, + evaluation_run_record_filter_input=models.EvaluationRunRecordFilterInput( + input_filters=utils.get_pydantic_model( + input_filters, OptionalNullable[models.ContentSearchFilterGroup] + ), + output_filters=utils.get_pydantic_model( + output_filters, OptionalNullable[models.ContentSearchFilterGroup] + ), + score_filters=utils.get_pydantic_model( + score_filters, OptionalNullable[models.ScoreFilterGroup] + ), + goal_filters=utils.get_pydantic_model( + goal_filters, OptionalNullable[models.GoalStatusFilterGroup] + ), + sort=utils.get_pydantic_model(sort, OptionalNullable[models.Sort]), + ), + ) + + req = self._build_request( + method="POST", + path="/v1/observability/evaluation-runs_v2/{run_id}/statistics/compute", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + get_serialized_body=lambda: utils.serialize_request_body( + request.evaluation_run_record_filter_input + if request is not None + else None, + True, + True, + "json", + OptionalNullable[models.EvaluationRunRecordFilterInput], + ), + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = self.do_request( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="compute_filtered_run_statistics_v2_v1_observability_evaluation_runs_v2__run_id__statistics_compute_post", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.runs"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.RunStatisticsResponse, http_res) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + async def compute_statistics_async( + self, + *, + run_id: str, + input_filters: OptionalNullable[ + Union[ + models.ContentSearchFilterGroup, + models.ContentSearchFilterGroupTypedDict, + ] + ] = UNSET, + output_filters: OptionalNullable[ + Union[ + models.ContentSearchFilterGroup, + models.ContentSearchFilterGroupTypedDict, + ] + ] = UNSET, + score_filters: OptionalNullable[ + Union[models.ScoreFilterGroup, models.ScoreFilterGroupTypedDict] + ] = UNSET, + goal_filters: OptionalNullable[ + Union[models.GoalStatusFilterGroup, models.GoalStatusFilterGroupTypedDict] + ] = UNSET, + sort: OptionalNullable[Union[models.Sort, models.SortTypedDict]] = UNSET, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.RunStatisticsResponse: + r"""Compute statistics for a specific evaluation run with optional filters + + :param run_id: + :param input_filters: + :param output_filters: + :param score_filters: + :param goal_filters: + :param sort: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.ComputeFilteredRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsComputePostRequest( + run_id=run_id, + evaluation_run_record_filter_input=models.EvaluationRunRecordFilterInput( + input_filters=utils.get_pydantic_model( + input_filters, OptionalNullable[models.ContentSearchFilterGroup] + ), + output_filters=utils.get_pydantic_model( + output_filters, OptionalNullable[models.ContentSearchFilterGroup] + ), + score_filters=utils.get_pydantic_model( + score_filters, OptionalNullable[models.ScoreFilterGroup] + ), + goal_filters=utils.get_pydantic_model( + goal_filters, OptionalNullable[models.GoalStatusFilterGroup] + ), + sort=utils.get_pydantic_model(sort, OptionalNullable[models.Sort]), + ), + ) + + req = self._build_request_async( + method="POST", + path="/v1/observability/evaluation-runs_v2/{run_id}/statistics/compute", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + get_serialized_body=lambda: utils.serialize_request_body( + request.evaluation_run_record_filter_input + if request is not None + else None, + True, + True, + "json", + OptionalNullable[models.EvaluationRunRecordFilterInput], + ), + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = await self.do_request_async( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="compute_filtered_run_statistics_v2_v1_observability_evaluation_runs_v2__run_id__statistics_compute_post", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.runs"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.RunStatisticsResponse, http_res) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/mistralai/client/models/__init__.py b/src/mistralai/client/models/__init__.py index 9f5028964..3b65d19f9 100644 --- a/src/mistralai/client/models/__init__.py +++ b/src/mistralai/client/models/__init__.py @@ -250,7 +250,6 @@ AudioTranscriptionRequestStreamTypedDict, ) from .authdata import AuthData, AuthDataTypedDict - from .authdirection import AuthDirection from .authenticationconfiguration import ( AuthenticationConfiguration, AuthenticationConfigurationTypedDict, @@ -258,9 +257,8 @@ from .authenticationmethodcreateorupdaterequest import ( AuthenticationMethodCreateOrUpdateRequest, AuthenticationMethodCreateOrUpdateRequestTypedDict, - MethodType, - MethodTypeTypedDict, ) + from .authenticationtype import AuthenticationType from .authstatus import AuthStatus from .authurlresponse import AuthURLResponse, AuthURLResponseTypedDict from .basemodelcard import BaseModelCard, BaseModelCardTypedDict @@ -293,6 +291,10 @@ CancelWorkflowExecutionV1WorkflowsExecutionsExecutionIDCancelPostRequest, CancelWorkflowExecutionV1WorkflowsExecutionsExecutionIDCancelPostRequestTypedDict, ) + from .categoricalstatistics import ( + CategoricalStatistics, + CategoricalStatisticsTypedDict, + ) from .chatclassificationrequest import ( ChatClassificationRequest, ChatClassificationRequestTypedDict, @@ -350,6 +352,12 @@ ClassificationResponse, ClassificationResponseTypedDict, ) + from .classificationstatisticspec import ( + Average, + ClassificationStatisticSpec, + ClassificationStatisticSpecKind, + ClassificationStatisticSpecTypedDict, + ) from .classificationtargetresult import ( ClassificationTargetResult, ClassificationTargetResultTypedDict, @@ -391,6 +399,11 @@ CompletionTokensDetails, CompletionTokensDetailsTypedDict, ) + from .compute_filtered_run_statistics_v2_v1_observability_evaluation_runs_v2_run_id_statistics_compute_postop import ( + ComputeFilteredRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsComputePostRequest, + ComputeFilteredRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsComputePostRequestTypedDict, + ) + from .confusionmatrix import ConfusionMatrix, ConfusionMatrixTypedDict from .connectionconfigtype import ConnectionConfigType from .connectioncredentialsinput import ( ConnectionCredentialsInput, @@ -538,6 +551,12 @@ ) from .consumertype import ConsumerType from .contentchunk import ContentChunk, ContentChunkTypedDict, UnknownContentChunk + from .contentsearchfilter import ContentSearchFilter, ContentSearchFilterTypedDict + from .contentsearchfiltergroup import ( + ContentSearchFilterGroup, + ContentSearchFilterGroupTypedDict, + ) + from .contentsearchoperator import ContentSearchOperator from .conversationappendrequest import ( ConversationAppendRequest, ConversationAppendRequestHandoffExecution, @@ -962,6 +981,51 @@ from .encryptedpatchvalue import EncryptedPatchValue, EncryptedPatchValueTypedDict from .entitytype import EntityType from .equal import Equal, EqualTypedDict, EqualValue, EqualValueTypedDict + from .evaluationrunfilterinput import ( + EvaluationRunFilterInput, + EvaluationRunFilterInputTypedDict, + ) + from .evaluationrungenerationv2 import ( + EvaluationRunGenerationV2, + EvaluationRunGenerationV2TypedDict, + ) + from .evaluationrunoutputrecordv2 import ( + EvaluationRunOutputRecordV2, + EvaluationRunOutputRecordV2TypedDict, + ) + from .evaluationrunrecordfilterinput import ( + EvaluationRunRecordFilterInput, + EvaluationRunRecordFilterInputTypedDict, + Sort, + SortTypedDict, + ) + from .evaluationrunrecordv2response import ( + EvaluationRunRecordV2Response, + EvaluationRunRecordV2ResponseTypedDict, + ) + from .evaluationrunscorev2 import ( + EvaluationRunScoreV2, + EvaluationRunScoreV2TypedDict, + ) + from .evaluationrunv2response import ( + EvaluationRunV2Response, + EvaluationRunV2ResponseTypedDict, + ) + from .evaluationrunv2withrefsresponse import ( + EvaluationRunV2WithRefsResponse, + EvaluationRunV2WithRefsResponseTypedDict, + ) + from .evaluationsv2 import EvaluationsV2, EvaluationsV2TypedDict + from .evaluationv2 import EvaluationV2, EvaluationV2TypedDict + from .evaluatorstatistics import EvaluatorStatistics, EvaluatorStatisticsTypedDict + from .evaluatorv2 import ( + EvaluatorV2, + EvaluatorV2Direction, + EvaluatorV2TypedDict, + Statistic, + StatisticTypedDict, + UnknownStatistic, + ) from .eventprogressstatus import EventProgressStatus from .eventsource import EventSource from .eventtype import EventType @@ -1009,6 +1073,7 @@ FeedResultGetSpanEvaluationTypedDict, ) from .feedresultgettrace import FeedResultGetTrace, FeedResultGetTraceTypedDict + from .fieldsortinput import FieldSortInput, FieldSortInputTypedDict from .file import File, FileTypedDict from .filechunk import FileChunk, FileChunkTypedDict from .filepurpose import FilePurpose @@ -1039,6 +1104,7 @@ ) from .fileschema import FileSchema, FileSchemaTypedDict from .filevisibility import FileVisibility + from .filtercombinator import FilterCombinator from .fimcompletionrequest import ( FIMCompletionRequest, FIMCompletionRequestStop, @@ -1130,6 +1196,18 @@ GetDeploymentV1WorkflowsDeploymentsNameGetRequest, GetDeploymentV1WorkflowsDeploymentsNameGetRequestTypedDict, ) + from .get_evaluation_run_record_v2_v1_observability_evaluation_runs_v2_run_id_records_record_id_getop import ( + GetEvaluationRunRecordV2V1ObservabilityEvaluationRunsV2RunIDRecordsRecordIDGetRequest, + GetEvaluationRunRecordV2V1ObservabilityEvaluationRunsV2RunIDRecordsRecordIDGetRequestTypedDict, + ) + from .get_evaluation_run_v2_v1_observability_evaluation_runs_v2_run_id_getop import ( + GetEvaluationRunV2V1ObservabilityEvaluationRunsV2RunIDGetRequest, + GetEvaluationRunV2V1ObservabilityEvaluationRunsV2RunIDGetRequestTypedDict, + ) + from .get_evaluation_v2_v1_observability_evaluations_v2_evaluation_slug_getop import ( + GetEvaluationV2V1ObservabilityEvaluationsV2EvaluationSlugGetRequest, + GetEvaluationV2V1ObservabilityEvaluationsV2EvaluationSlugGetRequestTypedDict, + ) from .get_index_v1_rag_managed_indexes_index_name_getop import ( GetIndexV1RagManagedIndexesIndexNameGetRequest, GetIndexV1RagManagedIndexesIndexNameGetRequestTypedDict, @@ -1146,6 +1224,10 @@ GetLogFieldOptionsV1ObservabilityLogsFieldsFieldNameOptionsGetRequest, GetLogFieldOptionsV1ObservabilityLogsFieldsFieldNameOptionsGetRequestTypedDict, ) + from .get_optimization_v1_observability_optimizations_optimization_id_getop import ( + GetOptimizationV1ObservabilityOptimizationsOptimizationIDGetRequest, + GetOptimizationV1ObservabilityOptimizationsOptimizationIDGetRequestTypedDict, + ) from .get_pipeline_config_v1_observability_pipeline_configs_pipeline_config_id_getop import ( GetPipelineConfigV1ObservabilityPipelineConfigsPipelineConfigIDGetRequest, GetPipelineConfigV1ObservabilityPipelineConfigsPipelineConfigIDGetRequestTypedDict, @@ -1154,6 +1236,18 @@ GetPipelineV1ObservabilityPipelinesPipelineIDGetRequest, GetPipelineV1ObservabilityPipelinesPipelineIDGetRequestTypedDict, ) + from .get_project_evaluations_v2_v1_observability_projects_project_slug_evaluations_v2_getop import ( + GetProjectEvaluationsV2V1ObservabilityProjectsProjectSlugEvaluationsV2GetRequest, + GetProjectEvaluationsV2V1ObservabilityProjectsProjectSlugEvaluationsV2GetRequestTypedDict, + ) + from .get_project_v1_observability_projects_project_slug_getop import ( + GetProjectV1ObservabilityProjectsProjectSlugGetRequest, + GetProjectV1ObservabilityProjectsProjectSlugGetRequestTypedDict, + ) + from .get_projects_v1_observability_projects_getop import ( + GetProjectsV1ObservabilityProjectsGetRequest, + GetProjectsV1ObservabilityProjectsGetRequestTypedDict, + ) from .get_run_history_v1_workflows_runs_run_id_history_getop import ( GetRunHistoryV1WorkflowsRunsRunIDHistoryGetRequest, GetRunHistoryV1WorkflowsRunsRunIDHistoryGetRequestTypedDict, @@ -1177,6 +1271,10 @@ GetServiceAccountV1ServiceAccountsServiceAccountIDGetRequest, GetServiceAccountV1ServiceAccountsServiceAccountIDGetRequestTypedDict, ) + from .get_single_evaluation_run_statistics_v2_v1_observability_evaluation_runs_v2_run_id_statistics_getop import ( + GetSingleEvaluationRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsGetRequest, + GetSingleEvaluationRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsGetRequestTypedDict, + ) from .get_span_by_id_v1_observability_traces_trace_id_spans_span_id_getop import ( GetSpanByIDV1ObservabilityTracesTraceIDSpansSpanIDGetRequest, GetSpanByIDV1ObservabilityTracesTraceIDSpansSpanIDGetRequestTypedDict, @@ -1330,6 +1428,19 @@ from .gitcommitauthor import GitCommitAuthor, GitCommitAuthorTypedDict from .gitcommitmetadata import GitCommitMetadata, GitCommitMetadataTypedDict from .globalheadervalue import GlobalHeaderValue, GlobalHeaderValueTypedDict + from .goalresult import GoalResult, GoalResultTypedDict + from .goalresultitem import ( + GoalResultItem, + GoalResultItemDirection, + GoalResultItemTypedDict, + ) + from .goalspec import GoalSpec, GoalSpecTypedDict + from .goalstatus import GoalStatus + from .goalstatusfilter import GoalStatusFilter, GoalStatusFilterTypedDict + from .goalstatusfiltergroup import ( + GoalStatusFilterGroup, + GoalStatusFilterGroupTypedDict, + ) from .granularity import Granularity from .grep_index_v1_rag_managed_indexes_index_name_grep_postop import ( GrepIndexV1RagManagedIndexesIndexNameGrepPostRequest, @@ -1367,7 +1478,6 @@ ImportDatasetFromSpansRequestTypedDict, ) from .in_ import In, InTypedDict, InValue, InValueTypedDict - from .inboundauthenticationtype import InboundAuthenticationType from .ingest_documents_v1_rag_managed_indexes_index_name_documents_postop import ( IngestDocumentsV1RagManagedIndexesIndexNameDocumentsPostRequest, IngestDocumentsV1RagManagedIndexesIndexNameDocumentsPostRequestTypedDict, @@ -1404,6 +1514,7 @@ IntArrayFieldDefinitionTypedDict, ) from .intfielddefinition import IntFieldDefinition, IntFieldDefinitionTypedDict + from .ipaphoneme import IPAPhoneme from .jobs_api_routes_batch_cancel_batch_jobop import ( JobsAPIRoutesBatchCancelBatchJobRequest, JobsAPIRoutesBatchCancelBatchJobRequestTypedDict, @@ -1613,6 +1724,14 @@ ListModelsV1ModelsGetRequest, ListModelsV1ModelsGetRequestTypedDict, ) + from .list_optimization_trials_v1_observability_optimizations_optimization_id_trials_getop import ( + ListOptimizationTrialsV1ObservabilityOptimizationsOptimizationIDTrialsGetRequest, + ListOptimizationTrialsV1ObservabilityOptimizationsOptimizationIDTrialsGetRequestTypedDict, + ) + from .list_optimizations_v1_observability_optimizations_getop import ( + ListOptimizationsV1ObservabilityOptimizationsGetRequest, + ListOptimizationsV1ObservabilityOptimizationsGetRequestTypedDict, + ) from .list_pipeline_configs_v1_observability_pipeline_configs_getop import ( ListPipelineConfigsV1ObservabilityPipelineConfigsGetRequest, ListPipelineConfigsV1ObservabilityPipelineConfigsGetRequestTypedDict, @@ -1670,6 +1789,14 @@ ListDocumentsResponse, ListDocumentsResponseTypedDict, ) + from .listevaluationrunrecordsresponse import ( + ListEvaluationRunRecordsResponse, + ListEvaluationRunRecordsResponseTypedDict, + ) + from .listevaluationrunsresponse import ( + ListEvaluationRunsResponse, + ListEvaluationRunsResponseTypedDict, + ) from .listfilesresponse import ListFilesResponse, ListFilesResponseTypedDict from .listjudgesresponse import ListJudgesResponse, ListJudgesResponseTypedDict from .listlibrariesresponse import ( @@ -1680,6 +1807,14 @@ ListManagedIndexesResponse, ListManagedIndexesResponseTypedDict, ) + from .listoptimizationsresponse import ( + ListOptimizationsResponse, + ListOptimizationsResponseTypedDict, + ) + from .listoptimizationtrialsresponse import ( + ListOptimizationTrialsResponse, + ListOptimizationTrialsResponseTypedDict, + ) from .listorganizationsresponse import ( ListOrganizationsResponse, ListOrganizationsResponseTypedDict, @@ -1811,6 +1946,13 @@ ) from .messageresponse import MessageResponse, MessageResponseTypedDict from .messagetokens import MessageTokens, MessageTokensTypedDict + from .metadatafilter import ( + MetadataFilter, + MetadataFilterTypedDict, + MetadataFilterValue, + MetadataFilterValueTypedDict, + ) + from .metadatafiltergroup import MetadataFilterGroup, MetadataFilterGroupTypedDict from .metricaggregation import MetricAggregation from .metricdefinition import MetricDefinition, MetricDefinitionTypedDict from .mistralembeddingmodel import ( @@ -1875,6 +2017,8 @@ ) from .networkencodedinput import NetworkEncodedInput, NetworkEncodedInputTypedDict from .noneauthmethod import NoneAuthMethod, NoneAuthMethodTypedDict + from .numericscoremetric import NumericScoreMetric + from .numericstatistics import NumericStatistics, NumericStatisticsTypedDict from .oauth2authmethod import OAuth2AuthMethod, OAuth2AuthMethodTypedDict from .oauth2authorizationcodeauthmethod import ( OAuth2AuthorizationCodeAuthMethod, @@ -1945,7 +2089,25 @@ from .ocrtextblock import OCRTextBlock, OCRTextBlockTypedDict from .ocrtitleblock import OCRTitleBlock, OCRTitleBlockTypedDict from .ocrusageinfo import OCRUsageInfo, OCRUsageInfoTypedDict - from .orderbyclause import Direction, OrderByClause, OrderByClauseTypedDict + from .optimization import Optimization, OptimizationTypedDict + from .optimizationdetail import OptimizationDetail, OptimizationDetailTypedDict + from .optimizationreference import ( + OptimizationReference, + OptimizationReferenceTypedDict, + ) + from .optimizationtrialobservation import ( + OptimizationTrialObservation, + OptimizationTrialObservationTypedDict, + ) + from .optimizationtrialwithobservations import ( + OptimizationTrialWithObservations, + OptimizationTrialWithObservationsTypedDict, + ) + from .orderbyclause import ( + OrderByClause, + OrderByClauseDirection, + OrderByClauseTypedDict, + ) from .otelfielddefinition import ( OtelFieldDefinition, OtelFieldDefinitionType, @@ -1953,7 +2115,6 @@ SupportedOperator, ) from .otlpdestination import OTLPDestination, OTLPDestinationTypedDict - from .outboundauthenticationtype import OutboundAuthenticationType from .outputcontentchunks import OutputContentChunks, OutputContentChunksTypedDict from .paginatedconnectors import PaginatedConnectors, PaginatedConnectorsTypedDict from .paginatedresultdatasetimporttask import ( @@ -1968,10 +2129,34 @@ PaginatedResultDatasetRecord, PaginatedResultDatasetRecordTypedDict, ) + from .paginatedresultevaluationrunrecordv2response import ( + PaginatedResultEvaluationRunRecordV2Response, + PaginatedResultEvaluationRunRecordV2ResponseTypedDict, + ) + from .paginatedresultevaluationrunv2response import ( + PaginatedResultEvaluationRunV2Response, + PaginatedResultEvaluationRunV2ResponseTypedDict, + ) + from .paginatedresultevaluationrunv2withrefsresponse import ( + PaginatedResultEvaluationRunV2WithRefsResponse, + PaginatedResultEvaluationRunV2WithRefsResponseTypedDict, + ) + from .paginatedresultevaluationv2 import ( + PaginatedResultEvaluationV2, + PaginatedResultEvaluationV2TypedDict, + ) from .paginatedresultjudgepreview import ( PaginatedResultJudgePreview, PaginatedResultJudgePreviewTypedDict, ) + from .paginatedresultoptimization import ( + PaginatedResultOptimization, + PaginatedResultOptimizationTypedDict, + ) + from .paginatedresultoptimizationtrialwithobservations import ( + PaginatedResultOptimizationTrialWithObservations, + PaginatedResultOptimizationTrialWithObservationsTypedDict, + ) from .paginatedresultpipeline import ( PaginatedResultPipeline, PaginatedResultPipelineTypedDict, @@ -1980,6 +2165,10 @@ PaginatedResultPipelineConfig, PaginatedResultPipelineConfigTypedDict, ) + from .paginatedresultproject import ( + PaginatedResultProject, + PaginatedResultProjectTypedDict, + ) from .paginationinfo import PaginationInfo, PaginationInfoTypedDict from .paginationresponse import PaginationResponse, PaginationResponseTypedDict from .partialscheduledefinition import ( @@ -1990,6 +2179,12 @@ PauseScheduleV1WorkflowsSchedulesScheduleIDPausePostRequest, PauseScheduleV1WorkflowsSchedulesScheduleIDPausePostRequestTypedDict, ) + from .percentilestatisticspec import ( + Percentile, + PercentileStatisticSpec, + PercentileStatisticSpecTypedDict, + PercentileTypedDict, + ) from .pipeline import Pipeline, PipelineTypedDict from .pipelineconfig import PipelineConfig, PipelineConfigTypedDict from .pipelineconfigdefinition import ( @@ -2031,6 +2226,12 @@ from .principaltype import PrincipalType from .processingstatus import ProcessingStatus, ProcessingStatusTypedDict from .processstatus import ProcessStatus + from .project import Project, ProjectTypedDict + from .projectevaluationsummary import ( + ProjectEvaluationSummary, + ProjectEvaluationSummaryTypedDict, + ) + from .projects import Projects, ProjectsTypedDict from .prompt import Prompt, PromptTypedDict from .promptargument import PromptArgument, PromptArgumentTypedDict from .promptdefinition import PromptDefinition, PromptDefinitionTypedDict @@ -2169,6 +2370,7 @@ RealtimeTranscriptionSessionUpdatePayloadTypedDict, ) from .reasoningeffort import ReasoningEffort + from .recordsortfield import RecordSortField from .referencechunk import ( ReferenceChunk, ReferenceChunkTypedDict, @@ -2210,7 +2412,20 @@ ResetWorkflowV1WorkflowsExecutionsExecutionIDResetPostRequestTypedDict, ) from .resetinvocationbody import ResetInvocationBody, ResetInvocationBodyTypedDict + from .resourcechunk import ( + ResourceChunk, + ResourceChunkContent, + ResourceChunkContentTypedDict, + ResourceChunkTypedDict, + UnknownResourceChunkContent, + ) from .resourcelink import ResourceLink, ResourceLinkTypedDict + from .resourcelinkchunk import ( + Metadata, + MetadataTypedDict, + ResourceLinkChunk, + ResourceLinkChunkTypedDict, + ) from .resourcescapability import ResourcesCapability, ResourcesCapabilityTypedDict from .resourcevisibility import ResourceVisibility from .responsedoneevent import ResponseDoneEvent, ResponseDoneEventTypedDict @@ -2246,6 +2461,17 @@ RRFRetrieverRetrieverTypedDict, RRFRetrieverTypedDict, ) + from .runevaluationsummary import ( + RunEvaluationSummary, + RunEvaluationSummaryTypedDict, + ) + from .runoptimizationref import RunOptimizationRef, RunOptimizationRefTypedDict + from .runownershipfilter import RunOwnershipFilter, RunOwnershipFilterTypedDict + from .runprojectsummary import RunProjectSummary, RunProjectSummaryTypedDict + from .runstatisticsresponse import ( + RunStatisticsResponse, + RunStatisticsResponseTypedDict, + ) from .sampletype import SampleType from .samplingcapability import SamplingCapability, SamplingCapabilityTypedDict from .scalarmetric import ( @@ -2254,6 +2480,10 @@ ScalarMetricValue, ScalarMetricValueTypedDict, ) + from .scalarstatisticvalue import ( + ScalarStatisticValue, + ScalarStatisticValueTypedDict, + ) from .schedulecalendar import ScheduleCalendar, ScheduleCalendarTypedDict from .scheduledefinition import ScheduleDefinition, ScheduleDefinitionTypedDict from .scheduledefinitionoutput import ( @@ -2276,6 +2506,27 @@ from .schemafieldindex import SchemaFieldIndex from .schemafieldrankingtype import SchemaFieldRankingType from .schemafieldstorage import SchemaFieldStorage + from .scorefilter import ( + ScoreFilter, + ScoreFilterTypedDict, + ScoreFilterValue, + ScoreFilterValueTypedDict, + ) + from .scorefiltergroup import ScoreFilterGroup, ScoreFilterGroupTypedDict + from .scoreoperator import ScoreOperator + from .scoresortinput import ScoreSortInput, ScoreSortInputTypedDict + from .search_all_evaluation_runs_v2_v1_observability_evaluation_runs_v2_search_postop import ( + SearchAllEvaluationRunsV2V1ObservabilityEvaluationRunsV2SearchPostRequest, + SearchAllEvaluationRunsV2V1ObservabilityEvaluationRunsV2SearchPostRequestTypedDict, + ) + from .search_evaluation_run_records_v2_v1_observability_evaluation_runs_v2_run_id_records_search_postop import ( + SearchEvaluationRunRecordsV2V1ObservabilityEvaluationRunsV2RunIDRecordsSearchPostRequest, + SearchEvaluationRunRecordsV2V1ObservabilityEvaluationRunsV2RunIDRecordsSearchPostRequestTypedDict, + ) + from .search_evaluation_runs_v2_v1_observability_evaluations_v2_evaluation_slug_runs_search_postop import ( + SearchEvaluationRunsV2V1ObservabilityEvaluationsV2EvaluationSlugRunsSearchPostRequest, + SearchEvaluationRunsV2V1ObservabilityEvaluationsV2EvaluationSlugRunsSearchPostRequestTypedDict, + ) from .search_index_v1_rag_managed_indexes_index_name_search_postop import ( SearchIndexV1RagManagedIndexesIndexNameSearchPostRequest, SearchIndexV1RagManagedIndexesIndexNameSearchPostRequestTypedDict, @@ -2300,6 +2551,10 @@ SearchTracesV1ObservabilityTracesSearchPostRequest, SearchTracesV1ObservabilityTracesSearchPostRequestTypedDict, ) + from .searchallevaluationrunsresponse import ( + SearchAllEvaluationRunsResponse, + SearchAllEvaluationRunsResponseTypedDict, + ) from .searchchunkresponse import SearchChunkResponse, SearchChunkResponseTypedDict from .searchhitresponse import SearchHitResponse, SearchHitResponseTypedDict from .searchrequest import ( @@ -2352,6 +2607,11 @@ SignalWorkflowResponse, SignalWorkflowResponseTypedDict, ) + from .simplenumericstatisticspec import ( + SimpleNumericStatisticSpec, + SimpleNumericStatisticSpecKind, + SimpleNumericStatisticSpecTypedDict, + ) from .skill import Skill, SkillTypedDict from .skillassetcontent import ( RawContent, @@ -2397,6 +2657,7 @@ UpdateSkillRequestTypedDict, ) from .skillversion import SkillVersion, SkillVersionTypedDict + from .sortdirection import SortDirection from .sortorder import SortOrder from .source import Source from .sourcekind import SourceKind @@ -2480,6 +2741,7 @@ StreamEventWorkflowContext, StreamEventWorkflowContextTypedDict, ) + from .systemfilter import SystemFilter, SystemFilterTypedDict from .systemmessage import ( SystemMessage, SystemMessageContent, @@ -2490,6 +2752,24 @@ SystemMessageContentChunks, SystemMessageContentChunksTypedDict, ) + from .systemnamefilter import SystemNameFilter, SystemNameFilterTypedDict + from .systemnamefiltergroup import ( + SystemNameFilterGroup, + SystemNameFilterGroupTypedDict, + ) + from .systemparamfilter import ( + SystemParamFilter, + SystemParamFilterTypedDict, + SystemParamFilterValue, + SystemParamFilterValueTypedDict, + ) + from .systemparamfiltergroup import ( + SystemParamFilterGroup, + SystemParamFilterGroupTypedDict, + ) + from .systemparamoperator import SystemParamOperator + from .systemv2 import Params, ParamsTypedDict, SystemV2, SystemV2TypedDict + from .tagfilter import TagFilter, TagFilterTypedDict from .taskselicitationcapability import ( TasksElicitationCapability, TasksElicitationCapabilityTypedDict, @@ -2711,6 +2991,10 @@ UnscheduleWorkflowV1WorkflowsSchedulesScheduleIDDeleteRequest, UnscheduleWorkflowV1WorkflowsSchedulesScheduleIDDeleteRequestTypedDict, ) + from .unsupportedstatistics import ( + UnsupportedStatistics, + UnsupportedStatisticsTypedDict, + ) from .update_dataset_record_payload_v1_observability_dataset_records_dataset_record_id_payload_putop import ( UpdateDatasetRecordPayloadV1ObservabilityDatasetRecordsDatasetRecordIDPayloadPutRequest, UpdateDatasetRecordPayloadV1ObservabilityDatasetRecordsDatasetRecordIDPayloadPutRequestTypedDict, @@ -2911,6 +3195,7 @@ from .vectordtype import VectorDType from .voicecreaterequest import VoiceCreateRequest, VoiceCreateRequestTypedDict from .voicegender import VoiceGender + from .voicekind import VoiceKind from .voicelistpage import VoiceListPage, VoiceListPageTypedDict from .voicelistresponse import VoiceListResponse, VoiceListResponseTypedDict from .voiceresponse import VoiceResponse, VoiceResponseType, VoiceResponseTypedDict @@ -3296,7 +3581,6 @@ "AudioV2VoicesListType", "AuthData", "AuthDataTypedDict", - "AuthDirection", "AuthStatus", "AuthURLResponse", "AuthURLResponseTypedDict", @@ -3304,8 +3588,10 @@ "AuthenticationConfigurationTypedDict", "AuthenticationMethodCreateOrUpdateRequest", "AuthenticationMethodCreateOrUpdateRequestTypedDict", + "AuthenticationType", "Authorization", "AuthorizationTypedDict", + "Average", "BackendSpec", "BackendSpecTypedDict", "BaseModelCard", @@ -3339,6 +3625,8 @@ "BuiltInConnectors", "CancelWorkflowExecutionV1WorkflowsExecutionsExecutionIDCancelPostRequest", "CancelWorkflowExecutionV1WorkflowsExecutionsExecutionIDCancelPostRequestTypedDict", + "CategoricalStatistics", + "CategoricalStatisticsTypedDict", "ChatClassificationRequest", "ChatClassificationRequestTypedDict", "ChatCompletionChoice", @@ -3382,6 +3670,9 @@ "ClassificationRequestTypedDict", "ClassificationResponse", "ClassificationResponseTypedDict", + "ClassificationStatisticSpec", + "ClassificationStatisticSpecKind", + "ClassificationStatisticSpecTypedDict", "ClassificationTargetResult", "ClassificationTargetResultTypedDict", "ClassifierFineTunedModel", @@ -3414,8 +3705,12 @@ "CompletionResponseStreamChoiceTypedDict", "CompletionTokensDetails", "CompletionTokensDetailsTypedDict", + "ComputeFilteredRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsComputePostRequest", + "ComputeFilteredRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsComputePostRequestTypedDict", "ConfidenceScoresGranularity", "Confirmation", + "ConfusionMatrix", + "ConfusionMatrixTypedDict", "ConnectionConfigType", "ConnectionCredentialsInput", "ConnectionCredentialsInputTypedDict", @@ -3503,6 +3798,11 @@ "ConsumerType", "ContentChunk", "ContentChunkTypedDict", + "ContentSearchFilter", + "ContentSearchFilterGroup", + "ContentSearchFilterGroupTypedDict", + "ContentSearchFilterTypedDict", + "ContentSearchOperator", "Context", "ContextTypedDict", "ConversationAppendRequest", @@ -3743,7 +4043,6 @@ "DetectionDefinitionTypedDict", "DetectionPattern", "DetectionPatternTypedDict", - "Direction", "DistanceMetric", "Document", "DocumentFieldErrorResponse", @@ -3787,6 +4086,31 @@ "EqualTypedDict", "EqualValue", "EqualValueTypedDict", + "EvaluationRunFilterInput", + "EvaluationRunFilterInputTypedDict", + "EvaluationRunGenerationV2", + "EvaluationRunGenerationV2TypedDict", + "EvaluationRunOutputRecordV2", + "EvaluationRunOutputRecordV2TypedDict", + "EvaluationRunRecordFilterInput", + "EvaluationRunRecordFilterInputTypedDict", + "EvaluationRunRecordV2Response", + "EvaluationRunRecordV2ResponseTypedDict", + "EvaluationRunScoreV2", + "EvaluationRunScoreV2TypedDict", + "EvaluationRunV2Response", + "EvaluationRunV2ResponseTypedDict", + "EvaluationRunV2WithRefsResponse", + "EvaluationRunV2WithRefsResponseTypedDict", + "EvaluationV2", + "EvaluationV2TypedDict", + "EvaluationsV2", + "EvaluationsV2TypedDict", + "EvaluatorStatistics", + "EvaluatorStatisticsTypedDict", + "EvaluatorV2", + "EvaluatorV2Direction", + "EvaluatorV2TypedDict", "EventProgressStatus", "EventSource", "EventType", @@ -3837,6 +4161,8 @@ "FeedResultGetSpanTypedDict", "FeedResultGetTrace", "FeedResultGetTraceTypedDict", + "FieldSortInput", + "FieldSortInputTypedDict", "File", "FileChunk", "FileChunkTypedDict", @@ -3856,6 +4182,7 @@ "FilesAPIRoutesRetrieveFileRequest", "FilesAPIRoutesRetrieveFileRequestTypedDict", "FilesAPIRoutesUploadFileFileVisibility", + "FilterCombinator", "FineTunedModelCapabilities", "FineTunedModelCapabilitiesTypedDict", "FloatArrayFieldDefinition", @@ -3911,6 +4238,12 @@ "GetDeploymentSummariesResponseVespaIndexTypedDict", "GetDeploymentV1WorkflowsDeploymentsNameGetRequest", "GetDeploymentV1WorkflowsDeploymentsNameGetRequestTypedDict", + "GetEvaluationRunRecordV2V1ObservabilityEvaluationRunsV2RunIDRecordsRecordIDGetRequest", + "GetEvaluationRunRecordV2V1ObservabilityEvaluationRunsV2RunIDRecordsRecordIDGetRequestTypedDict", + "GetEvaluationRunV2V1ObservabilityEvaluationRunsV2RunIDGetRequest", + "GetEvaluationRunV2V1ObservabilityEvaluationRunsV2RunIDGetRequestTypedDict", + "GetEvaluationV2V1ObservabilityEvaluationsV2EvaluationSlugGetRequest", + "GetEvaluationV2V1ObservabilityEvaluationsV2EvaluationSlugGetRequestTypedDict", "GetFileResponse", "GetFileResponseTypedDict", "GetIndexV1RagManagedIndexesIndexNameGetRequest", @@ -3929,10 +4262,18 @@ "GetLogTypedDict", "GetLogs", "GetLogsTypedDict", + "GetOptimizationV1ObservabilityOptimizationsOptimizationIDGetRequest", + "GetOptimizationV1ObservabilityOptimizationsOptimizationIDGetRequestTypedDict", "GetPipelineConfigV1ObservabilityPipelineConfigsPipelineConfigIDGetRequest", "GetPipelineConfigV1ObservabilityPipelineConfigsPipelineConfigIDGetRequestTypedDict", "GetPipelineV1ObservabilityPipelinesPipelineIDGetRequest", "GetPipelineV1ObservabilityPipelinesPipelineIDGetRequestTypedDict", + "GetProjectEvaluationsV2V1ObservabilityProjectsProjectSlugEvaluationsV2GetRequest", + "GetProjectEvaluationsV2V1ObservabilityProjectsProjectSlugEvaluationsV2GetRequestTypedDict", + "GetProjectV1ObservabilityProjectsProjectSlugGetRequest", + "GetProjectV1ObservabilityProjectsProjectSlugGetRequestTypedDict", + "GetProjectsV1ObservabilityProjectsGetRequest", + "GetProjectsV1ObservabilityProjectsGetRequestTypedDict", "GetRunHistoryV1WorkflowsRunsRunIDHistoryGetRequest", "GetRunHistoryV1WorkflowsRunsRunIDHistoryGetRequestTypedDict", "GetRunV1WorkflowsRunsRunIDGetRequest", @@ -3948,6 +4289,8 @@ "GetServiceAccountV1ServiceAccountsServiceAccountIDGetRequestTypedDict", "GetSignedURLResponse", "GetSignedURLResponseTypedDict", + "GetSingleEvaluationRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsGetRequest", + "GetSingleEvaluationRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsGetRequestTypedDict", "GetSpan", "GetSpanByIDV1ObservabilityTracesTraceIDSpansSpanIDGetRequest", "GetSpanByIDV1ObservabilityTracesTraceIDSpansSpanIDGetRequestTypedDict", @@ -4034,6 +4377,18 @@ "GitCommitMetadataTypedDict", "GlobalHeaderValue", "GlobalHeaderValueTypedDict", + "GoalResult", + "GoalResultItem", + "GoalResultItemDirection", + "GoalResultItemTypedDict", + "GoalResultTypedDict", + "GoalSpec", + "GoalSpecTypedDict", + "GoalStatus", + "GoalStatusFilter", + "GoalStatusFilterGroup", + "GoalStatusFilterGroupTypedDict", + "GoalStatusFilterTypedDict", "Granularity", "GrepIndexV1RagManagedIndexesIndexNameGrepPostRequest", "GrepIndexV1RagManagedIndexesIndexNameGrepPostRequestTypedDict", @@ -4049,6 +4404,7 @@ "HTTPConnector", "HTTPConnectorTypedDict", "HTTPStatus", + "IPAPhoneme", "ImageContent", "ImageContentTypedDict", "ImageDetail", @@ -4072,7 +4428,6 @@ "InTypedDict", "InValue", "InValueTypedDict", - "InboundAuthenticationType", "IngestDocumentsRequest", "IngestDocumentsRequestTypedDict", "IngestDocumentsResponse", @@ -4225,6 +4580,10 @@ "ListDeploymentsV1WorkflowsDeploymentsGetRequestTypedDict", "ListDocumentsResponse", "ListDocumentsResponseTypedDict", + "ListEvaluationRunRecordsResponse", + "ListEvaluationRunRecordsResponseTypedDict", + "ListEvaluationRunsResponse", + "ListEvaluationRunsResponseTypedDict", "ListFilesResponse", "ListFilesResponseTypedDict", "ListIndexesV1RagManagedIndexesGetRequest", @@ -4239,6 +4598,14 @@ "ListManagedIndexesResponseTypedDict", "ListModelsV1ModelsGetRequest", "ListModelsV1ModelsGetRequestTypedDict", + "ListOptimizationTrialsResponse", + "ListOptimizationTrialsResponseTypedDict", + "ListOptimizationTrialsV1ObservabilityOptimizationsOptimizationIDTrialsGetRequest", + "ListOptimizationTrialsV1ObservabilityOptimizationsOptimizationIDTrialsGetRequestTypedDict", + "ListOptimizationsResponse", + "ListOptimizationsResponseTypedDict", + "ListOptimizationsV1ObservabilityOptimizationsGetRequest", + "ListOptimizationsV1ObservabilityOptimizationsGetRequestTypedDict", "ListOrganizationsResponse", "ListOrganizationsResponseTypedDict", "ListPipelineConfigsV1ObservabilityPipelineConfigsGetRequest", @@ -4361,8 +4728,14 @@ "MessageResponseTypedDict", "MessageTokens", "MessageTokensTypedDict", - "MethodType", - "MethodTypeTypedDict", + "Metadata", + "MetadataFilter", + "MetadataFilterGroup", + "MetadataFilterGroupTypedDict", + "MetadataFilterTypedDict", + "MetadataFilterValue", + "MetadataFilterValueTypedDict", + "MetadataTypedDict", "MetricAggregation", "MetricDefinition", "MetricDefinitionTypedDict", @@ -4421,6 +4794,9 @@ "NotMatch", "NotMatchTypedDict", "NotTypedDict", + "NumericScoreMetric", + "NumericStatistics", + "NumericStatisticsTypedDict", "OAuth2AuthMethod", "OAuth2AuthMethodTypedDict", "OAuth2AuthorizationCodeAuthMethod", @@ -4487,17 +4863,27 @@ "ObservabilityErrorCode", "ObservabilityErrorDetail", "ObservabilityErrorDetailTypedDict", + "Optimization", + "OptimizationDetail", + "OptimizationDetailTypedDict", + "OptimizationReference", + "OptimizationReferenceTypedDict", + "OptimizationTrialObservation", + "OptimizationTrialObservationTypedDict", + "OptimizationTrialWithObservations", + "OptimizationTrialWithObservationsTypedDict", + "OptimizationTypedDict", "Or", "OrMatch", "OrMatchTypedDict", "OrTypedDict", "Order", "OrderByClause", + "OrderByClauseDirection", "OrderByClauseTypedDict", "OtelFieldDefinition", "OtelFieldDefinitionType", "OtelFieldDefinitionTypedDict", - "OutboundAuthenticationType", "OutputContentChunks", "OutputContentChunksTypedDict", "OwnerType", @@ -4511,22 +4897,42 @@ "PaginatedResultDatasetPreviewTypedDict", "PaginatedResultDatasetRecord", "PaginatedResultDatasetRecordTypedDict", + "PaginatedResultEvaluationRunRecordV2Response", + "PaginatedResultEvaluationRunRecordV2ResponseTypedDict", + "PaginatedResultEvaluationRunV2Response", + "PaginatedResultEvaluationRunV2ResponseTypedDict", + "PaginatedResultEvaluationRunV2WithRefsResponse", + "PaginatedResultEvaluationRunV2WithRefsResponseTypedDict", + "PaginatedResultEvaluationV2", + "PaginatedResultEvaluationV2TypedDict", "PaginatedResultJudgePreview", "PaginatedResultJudgePreviewTypedDict", + "PaginatedResultOptimization", + "PaginatedResultOptimizationTrialWithObservations", + "PaginatedResultOptimizationTrialWithObservationsTypedDict", + "PaginatedResultOptimizationTypedDict", "PaginatedResultPipeline", "PaginatedResultPipelineConfig", "PaginatedResultPipelineConfigTypedDict", "PaginatedResultPipelineTypedDict", + "PaginatedResultProject", + "PaginatedResultProjectTypedDict", "PaginationInfo", "PaginationInfoTypedDict", "PaginationResponse", "PaginationResponseTypedDict", + "Params", + "ParamsTypedDict", "PartialScheduleDefinition", "PartialScheduleDefinitionTypedDict", "PauseScheduleV1WorkflowsSchedulesScheduleIDPausePostRequest", "PauseScheduleV1WorkflowsSchedulesScheduleIDPausePostRequestTypedDict", "Payload", "PayloadTypedDict", + "Percentile", + "PercentileStatisticSpec", + "PercentileStatisticSpecTypedDict", + "PercentileTypedDict", "Pipeline", "PipelineConfig", "PipelineConfigDefinition", @@ -4557,6 +4963,12 @@ "ProcessStatus", "ProcessingStatus", "ProcessingStatusTypedDict", + "Project", + "ProjectEvaluationSummary", + "ProjectEvaluationSummaryTypedDict", + "ProjectTypedDict", + "Projects", + "ProjectsTypedDict", "Prompt", "PromptArgument", "PromptArgumentTypedDict", @@ -4651,6 +5063,7 @@ "RealtimeTranscriptionSessionUpdated", "RealtimeTranscriptionSessionUpdatedTypedDict", "ReasoningEffort", + "RecordSortField", "ReferenceChunk", "ReferenceChunkTypedDict", "ReferenceID", @@ -4680,7 +5093,13 @@ "ResetWorkflowV1WorkflowsExecutionsExecutionIDResetPostRequest", "ResetWorkflowV1WorkflowsExecutionsExecutionIDResetPostRequestTypedDict", "Resource", + "ResourceChunk", + "ResourceChunkContent", + "ResourceChunkContentTypedDict", + "ResourceChunkTypedDict", "ResourceLink", + "ResourceLinkChunk", + "ResourceLinkChunkTypedDict", "ResourceLinkTypedDict", "ResourceTypedDict", "ResourceVisibility", @@ -4719,6 +5138,16 @@ "Roles", "RootsCapability", "RootsCapabilityTypedDict", + "RunEvaluationSummary", + "RunEvaluationSummaryTypedDict", + "RunOptimizationRef", + "RunOptimizationRefTypedDict", + "RunOwnershipFilter", + "RunOwnershipFilterTypedDict", + "RunProjectSummary", + "RunProjectSummaryTypedDict", + "RunStatisticsResponse", + "RunStatisticsResponseTypedDict", "SSETypes", "SampleType", "SamplingCapability", @@ -4727,6 +5156,8 @@ "ScalarMetricTypedDict", "ScalarMetricValue", "ScalarMetricValueTypedDict", + "ScalarStatisticValue", + "ScalarStatisticValueTypedDict", "ScheduleCalendar", "ScheduleCalendarTypedDict", "ScheduleDefinition", @@ -4749,8 +5180,25 @@ "SchemaFieldRankingType", "SchemaFieldStorage", "Scope", + "ScoreFilter", + "ScoreFilterGroup", + "ScoreFilterGroupTypedDict", + "ScoreFilterTypedDict", + "ScoreFilterValue", + "ScoreFilterValueTypedDict", + "ScoreOperator", + "ScoreSortInput", + "ScoreSortInputTypedDict", + "SearchAllEvaluationRunsResponse", + "SearchAllEvaluationRunsResponseTypedDict", + "SearchAllEvaluationRunsV2V1ObservabilityEvaluationRunsV2SearchPostRequest", + "SearchAllEvaluationRunsV2V1ObservabilityEvaluationRunsV2SearchPostRequestTypedDict", "SearchChunkResponse", "SearchChunkResponseTypedDict", + "SearchEvaluationRunRecordsV2V1ObservabilityEvaluationRunsV2RunIDRecordsSearchPostRequest", + "SearchEvaluationRunRecordsV2V1ObservabilityEvaluationRunsV2RunIDRecordsSearchPostRequestTypedDict", + "SearchEvaluationRunsV2V1ObservabilityEvaluationsV2EvaluationSlugRunsSearchPostRequest", + "SearchEvaluationRunsV2V1ObservabilityEvaluationsV2EvaluationSlugRunsSearchPostRequestTypedDict", "SearchHitResponse", "SearchHitResponseTypedDict", "SearchIndexV1RagManagedIndexesIndexNameSearchPostRequest", @@ -4809,6 +5257,9 @@ "SignalWorkflowExecutionV1WorkflowsExecutionsExecutionIDSignalsPostRequestTypedDict", "SignalWorkflowResponse", "SignalWorkflowResponseTypedDict", + "SimpleNumericStatisticSpec", + "SimpleNumericStatisticSpecKind", + "SimpleNumericStatisticSpecTypedDict", "Skill", "SkillAssetContent", "SkillAssetContentTextContent", @@ -4839,8 +5290,11 @@ "SkillsUpdateVersionMetadataRequestTypedDict", "SkipConfirmation", "SkipConfirmationTypedDict", + "Sort", "SortBy", + "SortDirection", "SortOrder", + "SortTypedDict", "Source", "SourceKind", "SpanDatasetMapping", @@ -4872,6 +5326,8 @@ "SpeechV1AudioSpeechPostResponseTypedDict", "StartDeploymentV1WorkflowsDeploymentsNameStartPostRequest", "StartDeploymentV1WorkflowsDeploymentsNameStartPostRequestTypedDict", + "Statistic", + "StatisticTypedDict", "StopDeploymentV1WorkflowsDeploymentsNameStopPostRequest", "StopDeploymentV1WorkflowsDeploymentsNameStopPostRequestTypedDict", "StreamDeploymentLogsData", @@ -4903,13 +5359,30 @@ "StreamWorkflowExecutionLogsResponseBody", "StreamWorkflowExecutionLogsResponseBodyTypedDict", "SupportedOperator", + "SystemFilter", + "SystemFilterTypedDict", "SystemMessage", "SystemMessageContent", "SystemMessageContentChunks", "SystemMessageContentChunksTypedDict", "SystemMessageContentTypedDict", "SystemMessageTypedDict", + "SystemNameFilter", + "SystemNameFilterGroup", + "SystemNameFilterGroupTypedDict", + "SystemNameFilterTypedDict", + "SystemParamFilter", + "SystemParamFilterGroup", + "SystemParamFilterGroupTypedDict", + "SystemParamFilterTypedDict", + "SystemParamFilterValue", + "SystemParamFilterValueTypedDict", + "SystemParamOperator", + "SystemV2", + "SystemV2TypedDict", "TableFormat", + "TagFilter", + "TagFilterTypedDict", "TaskSupport", "TasksElicitationCapability", "TasksElicitationCapabilityTypedDict", @@ -5085,14 +5558,18 @@ "UnknownModelConversationTool", "UnknownModelListData", "UnknownPayload", + "UnknownResourceChunkContent", "UnknownResponseRetrieveModelV1ModelsModelIDGet", "UnknownResult", "UnknownSpeechV1AudioSpeechPostData", + "UnknownStatistic", "UnknownTranscriptionStreamEventsData", "UnregisterDeploymentV1RagDeploymentsDeploymentIDDeleteRequest", "UnregisterDeploymentV1RagDeploymentsDeploymentIDDeleteRequestTypedDict", "UnscheduleWorkflowV1WorkflowsSchedulesScheduleIDDeleteRequest", "UnscheduleWorkflowV1WorkflowsSchedulesScheduleIDDeleteRequestTypedDict", + "UnsupportedStatistics", + "UnsupportedStatisticsTypedDict", "UpdateAgentRequest", "UpdateAgentRequestTool", "UpdateAgentRequestToolTypedDict", @@ -5224,6 +5701,7 @@ "VoiceCreateRequest", "VoiceCreateRequestTypedDict", "VoiceGender", + "VoiceKind", "VoiceListPage", "VoiceListPageTypedDict", "VoiceListResponse", @@ -5513,13 +5991,11 @@ "AudioTranscriptionRequestStreamTypedDict": ".audiotranscriptionrequeststream", "AuthData": ".authdata", "AuthDataTypedDict": ".authdata", - "AuthDirection": ".authdirection", "AuthenticationConfiguration": ".authenticationconfiguration", "AuthenticationConfigurationTypedDict": ".authenticationconfiguration", "AuthenticationMethodCreateOrUpdateRequest": ".authenticationmethodcreateorupdaterequest", "AuthenticationMethodCreateOrUpdateRequestTypedDict": ".authenticationmethodcreateorupdaterequest", - "MethodType": ".authenticationmethodcreateorupdaterequest", - "MethodTypeTypedDict": ".authenticationmethodcreateorupdaterequest", + "AuthenticationType": ".authenticationtype", "AuthStatus": ".authstatus", "AuthURLResponse": ".authurlresponse", "AuthURLResponseTypedDict": ".authurlresponse", @@ -5550,6 +6026,8 @@ "BuiltInConnectors": ".builtinconnectors", "CancelWorkflowExecutionV1WorkflowsExecutionsExecutionIDCancelPostRequest": ".cancel_workflow_execution_v1_workflows_executions_execution_id_cancel_postop", "CancelWorkflowExecutionV1WorkflowsExecutionsExecutionIDCancelPostRequestTypedDict": ".cancel_workflow_execution_v1_workflows_executions_execution_id_cancel_postop", + "CategoricalStatistics": ".categoricalstatistics", + "CategoricalStatisticsTypedDict": ".categoricalstatistics", "ChatClassificationRequest": ".chatclassificationrequest", "ChatClassificationRequestTypedDict": ".chatclassificationrequest", "ChatCompletionChoice": ".chatcompletionchoice", @@ -5591,6 +6069,10 @@ "ClassificationRequestTypedDict": ".classificationrequest", "ClassificationResponse": ".classificationresponse", "ClassificationResponseTypedDict": ".classificationresponse", + "Average": ".classificationstatisticspec", + "ClassificationStatisticSpec": ".classificationstatisticspec", + "ClassificationStatisticSpecKind": ".classificationstatisticspec", + "ClassificationStatisticSpecTypedDict": ".classificationstatisticspec", "ClassificationTargetResult": ".classificationtargetresult", "ClassificationTargetResultTypedDict": ".classificationtargetresult", "ClassifierFineTunedModel": ".classifierfinetunedmodel", @@ -5623,6 +6105,10 @@ "CompletionResponseStreamChoiceTypedDict": ".completionresponsestreamchoice", "CompletionTokensDetails": ".completiontokensdetails", "CompletionTokensDetailsTypedDict": ".completiontokensdetails", + "ComputeFilteredRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsComputePostRequest": ".compute_filtered_run_statistics_v2_v1_observability_evaluation_runs_v2_run_id_statistics_compute_postop", + "ComputeFilteredRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsComputePostRequestTypedDict": ".compute_filtered_run_statistics_v2_v1_observability_evaluation_runs_v2_run_id_statistics_compute_postop", + "ConfusionMatrix": ".confusionmatrix", + "ConfusionMatrixTypedDict": ".confusionmatrix", "ConnectionConfigType": ".connectionconfigtype", "ConnectionCredentialsInput": ".connectioncredentialsinput", "ConnectionCredentialsInputTypedDict": ".connectioncredentialsinput", @@ -5715,6 +6201,11 @@ "ContentChunk": ".contentchunk", "ContentChunkTypedDict": ".contentchunk", "UnknownContentChunk": ".contentchunk", + "ContentSearchFilter": ".contentsearchfilter", + "ContentSearchFilterTypedDict": ".contentsearchfilter", + "ContentSearchFilterGroup": ".contentsearchfiltergroup", + "ContentSearchFilterGroupTypedDict": ".contentsearchfiltergroup", + "ContentSearchOperator": ".contentsearchoperator", "ConversationAppendRequest": ".conversationappendrequest", "ConversationAppendRequestHandoffExecution": ".conversationappendrequest", "ConversationAppendRequestTypedDict": ".conversationappendrequest", @@ -6000,6 +6491,36 @@ "EqualTypedDict": ".equal", "EqualValue": ".equal", "EqualValueTypedDict": ".equal", + "EvaluationRunFilterInput": ".evaluationrunfilterinput", + "EvaluationRunFilterInputTypedDict": ".evaluationrunfilterinput", + "EvaluationRunGenerationV2": ".evaluationrungenerationv2", + "EvaluationRunGenerationV2TypedDict": ".evaluationrungenerationv2", + "EvaluationRunOutputRecordV2": ".evaluationrunoutputrecordv2", + "EvaluationRunOutputRecordV2TypedDict": ".evaluationrunoutputrecordv2", + "EvaluationRunRecordFilterInput": ".evaluationrunrecordfilterinput", + "EvaluationRunRecordFilterInputTypedDict": ".evaluationrunrecordfilterinput", + "Sort": ".evaluationrunrecordfilterinput", + "SortTypedDict": ".evaluationrunrecordfilterinput", + "EvaluationRunRecordV2Response": ".evaluationrunrecordv2response", + "EvaluationRunRecordV2ResponseTypedDict": ".evaluationrunrecordv2response", + "EvaluationRunScoreV2": ".evaluationrunscorev2", + "EvaluationRunScoreV2TypedDict": ".evaluationrunscorev2", + "EvaluationRunV2Response": ".evaluationrunv2response", + "EvaluationRunV2ResponseTypedDict": ".evaluationrunv2response", + "EvaluationRunV2WithRefsResponse": ".evaluationrunv2withrefsresponse", + "EvaluationRunV2WithRefsResponseTypedDict": ".evaluationrunv2withrefsresponse", + "EvaluationsV2": ".evaluationsv2", + "EvaluationsV2TypedDict": ".evaluationsv2", + "EvaluationV2": ".evaluationv2", + "EvaluationV2TypedDict": ".evaluationv2", + "EvaluatorStatistics": ".evaluatorstatistics", + "EvaluatorStatisticsTypedDict": ".evaluatorstatistics", + "EvaluatorV2": ".evaluatorv2", + "EvaluatorV2Direction": ".evaluatorv2", + "EvaluatorV2TypedDict": ".evaluatorv2", + "Statistic": ".evaluatorv2", + "StatisticTypedDict": ".evaluatorv2", + "UnknownStatistic": ".evaluatorv2", "EventProgressStatus": ".eventprogressstatus", "EventSource": ".eventsource", "EventType": ".eventtype", @@ -6039,6 +6560,8 @@ "FeedResultGetSpanEvaluationTypedDict": ".feedresultgetspanevaluation", "FeedResultGetTrace": ".feedresultgettrace", "FeedResultGetTraceTypedDict": ".feedresultgettrace", + "FieldSortInput": ".fieldsortinput", + "FieldSortInputTypedDict": ".fieldsortinput", "File": ".file", "FileTypedDict": ".file", "FileChunk": ".filechunk", @@ -6060,6 +6583,7 @@ "FileSchema": ".fileschema", "FileSchemaTypedDict": ".fileschema", "FileVisibility": ".filevisibility", + "FilterCombinator": ".filtercombinator", "FIMCompletionRequest": ".fimcompletionrequest", "FIMCompletionRequestStop": ".fimcompletionrequest", "FIMCompletionRequestStopTypedDict": ".fimcompletionrequest", @@ -6118,6 +6642,12 @@ "GetDeploymentLogsRequestTypedDict": ".get_deployment_logsop", "GetDeploymentV1WorkflowsDeploymentsNameGetRequest": ".get_deployment_v1_workflows_deployments_name_getop", "GetDeploymentV1WorkflowsDeploymentsNameGetRequestTypedDict": ".get_deployment_v1_workflows_deployments_name_getop", + "GetEvaluationRunRecordV2V1ObservabilityEvaluationRunsV2RunIDRecordsRecordIDGetRequest": ".get_evaluation_run_record_v2_v1_observability_evaluation_runs_v2_run_id_records_record_id_getop", + "GetEvaluationRunRecordV2V1ObservabilityEvaluationRunsV2RunIDRecordsRecordIDGetRequestTypedDict": ".get_evaluation_run_record_v2_v1_observability_evaluation_runs_v2_run_id_records_record_id_getop", + "GetEvaluationRunV2V1ObservabilityEvaluationRunsV2RunIDGetRequest": ".get_evaluation_run_v2_v1_observability_evaluation_runs_v2_run_id_getop", + "GetEvaluationRunV2V1ObservabilityEvaluationRunsV2RunIDGetRequestTypedDict": ".get_evaluation_run_v2_v1_observability_evaluation_runs_v2_run_id_getop", + "GetEvaluationV2V1ObservabilityEvaluationsV2EvaluationSlugGetRequest": ".get_evaluation_v2_v1_observability_evaluations_v2_evaluation_slug_getop", + "GetEvaluationV2V1ObservabilityEvaluationsV2EvaluationSlugGetRequestTypedDict": ".get_evaluation_v2_v1_observability_evaluations_v2_evaluation_slug_getop", "GetIndexV1RagManagedIndexesIndexNameGetRequest": ".get_index_v1_rag_managed_indexes_index_name_getop", "GetIndexV1RagManagedIndexesIndexNameGetRequestTypedDict": ".get_index_v1_rag_managed_indexes_index_name_getop", "GetJudgeByIDV1ObservabilityJudgesJudgeIDGetRequest": ".get_judge_by_id_v1_observability_judges_judge_id_getop", @@ -6126,10 +6656,18 @@ "GetJudgesV1ObservabilityJudgesGetRequestTypedDict": ".get_judges_v1_observability_judges_getop", "GetLogFieldOptionsV1ObservabilityLogsFieldsFieldNameOptionsGetRequest": ".get_log_field_options_v1_observability_logs_fields_field_name_options_getop", "GetLogFieldOptionsV1ObservabilityLogsFieldsFieldNameOptionsGetRequestTypedDict": ".get_log_field_options_v1_observability_logs_fields_field_name_options_getop", + "GetOptimizationV1ObservabilityOptimizationsOptimizationIDGetRequest": ".get_optimization_v1_observability_optimizations_optimization_id_getop", + "GetOptimizationV1ObservabilityOptimizationsOptimizationIDGetRequestTypedDict": ".get_optimization_v1_observability_optimizations_optimization_id_getop", "GetPipelineConfigV1ObservabilityPipelineConfigsPipelineConfigIDGetRequest": ".get_pipeline_config_v1_observability_pipeline_configs_pipeline_config_id_getop", "GetPipelineConfigV1ObservabilityPipelineConfigsPipelineConfigIDGetRequestTypedDict": ".get_pipeline_config_v1_observability_pipeline_configs_pipeline_config_id_getop", "GetPipelineV1ObservabilityPipelinesPipelineIDGetRequest": ".get_pipeline_v1_observability_pipelines_pipeline_id_getop", "GetPipelineV1ObservabilityPipelinesPipelineIDGetRequestTypedDict": ".get_pipeline_v1_observability_pipelines_pipeline_id_getop", + "GetProjectEvaluationsV2V1ObservabilityProjectsProjectSlugEvaluationsV2GetRequest": ".get_project_evaluations_v2_v1_observability_projects_project_slug_evaluations_v2_getop", + "GetProjectEvaluationsV2V1ObservabilityProjectsProjectSlugEvaluationsV2GetRequestTypedDict": ".get_project_evaluations_v2_v1_observability_projects_project_slug_evaluations_v2_getop", + "GetProjectV1ObservabilityProjectsProjectSlugGetRequest": ".get_project_v1_observability_projects_project_slug_getop", + "GetProjectV1ObservabilityProjectsProjectSlugGetRequestTypedDict": ".get_project_v1_observability_projects_project_slug_getop", + "GetProjectsV1ObservabilityProjectsGetRequest": ".get_projects_v1_observability_projects_getop", + "GetProjectsV1ObservabilityProjectsGetRequestTypedDict": ".get_projects_v1_observability_projects_getop", "GetRunHistoryV1WorkflowsRunsRunIDHistoryGetRequest": ".get_run_history_v1_workflows_runs_run_id_history_getop", "GetRunHistoryV1WorkflowsRunsRunIDHistoryGetRequestTypedDict": ".get_run_history_v1_workflows_runs_run_id_history_getop", "GetRunV1WorkflowsRunsRunIDGetRequest": ".get_run_v1_workflows_runs_run_id_getop", @@ -6143,6 +6681,8 @@ "GetSchedulesV1WorkflowsSchedulesGetStatus": ".get_schedules_v1_workflows_schedules_getop", "GetServiceAccountV1ServiceAccountsServiceAccountIDGetRequest": ".get_service_account_v1_service_accounts_service_account_id_getop", "GetServiceAccountV1ServiceAccountsServiceAccountIDGetRequestTypedDict": ".get_service_account_v1_service_accounts_service_account_id_getop", + "GetSingleEvaluationRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsGetRequest": ".get_single_evaluation_run_statistics_v2_v1_observability_evaluation_runs_v2_run_id_statistics_getop", + "GetSingleEvaluationRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsGetRequestTypedDict": ".get_single_evaluation_run_statistics_v2_v1_observability_evaluation_runs_v2_run_id_statistics_getop", "GetSpanByIDV1ObservabilityTracesTraceIDSpansSpanIDGetRequest": ".get_span_by_id_v1_observability_traces_trace_id_spans_span_id_getop", "GetSpanByIDV1ObservabilityTracesTraceIDSpansSpanIDGetRequestTypedDict": ".get_span_by_id_v1_observability_traces_trace_id_spans_span_id_getop", "GetSpanEvaluationFieldOptionsV1ObservabilitySpansEvaluationsFieldsFieldNameOptionsGetRequest": ".get_span_evaluation_field_options_v1_observability_spans_evaluations_fields_field_name_options_getop", @@ -6255,6 +6795,18 @@ "GitCommitMetadataTypedDict": ".gitcommitmetadata", "GlobalHeaderValue": ".globalheadervalue", "GlobalHeaderValueTypedDict": ".globalheadervalue", + "GoalResult": ".goalresult", + "GoalResultTypedDict": ".goalresult", + "GoalResultItem": ".goalresultitem", + "GoalResultItemDirection": ".goalresultitem", + "GoalResultItemTypedDict": ".goalresultitem", + "GoalSpec": ".goalspec", + "GoalSpecTypedDict": ".goalspec", + "GoalStatus": ".goalstatus", + "GoalStatusFilter": ".goalstatusfilter", + "GoalStatusFilterTypedDict": ".goalstatusfilter", + "GoalStatusFilterGroup": ".goalstatusfiltergroup", + "GoalStatusFilterGroupTypedDict": ".goalstatusfiltergroup", "Granularity": ".granularity", "GrepIndexV1RagManagedIndexesIndexNameGrepPostRequest": ".grep_index_v1_rag_managed_indexes_index_name_grep_postop", "GrepIndexV1RagManagedIndexesIndexNameGrepPostRequestTypedDict": ".grep_index_v1_rag_managed_indexes_index_name_grep_postop", @@ -6289,7 +6841,6 @@ "InTypedDict": ".in_", "InValue": ".in_", "InValueTypedDict": ".in_", - "InboundAuthenticationType": ".inboundauthenticationtype", "IngestDocumentsV1RagManagedIndexesIndexNameDocumentsPostRequest": ".ingest_documents_v1_rag_managed_indexes_index_name_documents_postop", "IngestDocumentsV1RagManagedIndexesIndexNameDocumentsPostRequestTypedDict": ".ingest_documents_v1_rag_managed_indexes_index_name_documents_postop", "IngestDocumentsRequest": ".ingestdocumentsrequest", @@ -6315,6 +6866,7 @@ "IntArrayFieldDefinitionTypedDict": ".intarrayfielddefinition", "IntFieldDefinition": ".intfielddefinition", "IntFieldDefinitionTypedDict": ".intfielddefinition", + "IPAPhoneme": ".ipaphoneme", "JobsAPIRoutesBatchCancelBatchJobRequest": ".jobs_api_routes_batch_cancel_batch_jobop", "JobsAPIRoutesBatchCancelBatchJobRequestTypedDict": ".jobs_api_routes_batch_cancel_batch_jobop", "JobsAPIRoutesBatchDeleteBatchJobRequest": ".jobs_api_routes_batch_delete_batch_jobop", @@ -6447,6 +6999,10 @@ "ListIndexesV1RagManagedIndexesGetResponseTypedDict": ".list_indexes_v1_rag_managed_indexes_getop", "ListModelsV1ModelsGetRequest": ".list_models_v1_models_getop", "ListModelsV1ModelsGetRequestTypedDict": ".list_models_v1_models_getop", + "ListOptimizationTrialsV1ObservabilityOptimizationsOptimizationIDTrialsGetRequest": ".list_optimization_trials_v1_observability_optimizations_optimization_id_trials_getop", + "ListOptimizationTrialsV1ObservabilityOptimizationsOptimizationIDTrialsGetRequestTypedDict": ".list_optimization_trials_v1_observability_optimizations_optimization_id_trials_getop", + "ListOptimizationsV1ObservabilityOptimizationsGetRequest": ".list_optimizations_v1_observability_optimizations_getop", + "ListOptimizationsV1ObservabilityOptimizationsGetRequestTypedDict": ".list_optimizations_v1_observability_optimizations_getop", "ListPipelineConfigsV1ObservabilityPipelineConfigsGetRequest": ".list_pipeline_configs_v1_observability_pipeline_configs_getop", "ListPipelineConfigsV1ObservabilityPipelineConfigsGetRequestTypedDict": ".list_pipeline_configs_v1_observability_pipeline_configs_getop", "ListPipelinesV1ObservabilityPipelinesGetRequest": ".list_pipelines_v1_observability_pipelines_getop", @@ -6480,6 +7036,10 @@ "ListDatasetsResponseTypedDict": ".listdatasetsresponse", "ListDocumentsResponse": ".listdocumentsresponse", "ListDocumentsResponseTypedDict": ".listdocumentsresponse", + "ListEvaluationRunRecordsResponse": ".listevaluationrunrecordsresponse", + "ListEvaluationRunRecordsResponseTypedDict": ".listevaluationrunrecordsresponse", + "ListEvaluationRunsResponse": ".listevaluationrunsresponse", + "ListEvaluationRunsResponseTypedDict": ".listevaluationrunsresponse", "ListFilesResponse": ".listfilesresponse", "ListFilesResponseTypedDict": ".listfilesresponse", "ListJudgesResponse": ".listjudgesresponse", @@ -6488,6 +7048,10 @@ "ListLibrariesResponseTypedDict": ".listlibrariesresponse", "ListManagedIndexesResponse": ".listmanagedindexesresponse", "ListManagedIndexesResponseTypedDict": ".listmanagedindexesresponse", + "ListOptimizationsResponse": ".listoptimizationsresponse", + "ListOptimizationsResponseTypedDict": ".listoptimizationsresponse", + "ListOptimizationTrialsResponse": ".listoptimizationtrialsresponse", + "ListOptimizationTrialsResponseTypedDict": ".listoptimizationtrialsresponse", "ListOrganizationsResponse": ".listorganizationsresponse", "ListOrganizationsResponseTypedDict": ".listorganizationsresponse", "ListPromptsResponse": ".listpromptsresponse", @@ -6597,6 +7161,12 @@ "MessageResponseTypedDict": ".messageresponse", "MessageTokens": ".messagetokens", "MessageTokensTypedDict": ".messagetokens", + "MetadataFilter": ".metadatafilter", + "MetadataFilterTypedDict": ".metadatafilter", + "MetadataFilterValue": ".metadatafilter", + "MetadataFilterValueTypedDict": ".metadatafilter", + "MetadataFilterGroup": ".metadatafiltergroup", + "MetadataFilterGroupTypedDict": ".metadatafiltergroup", "MetricAggregation": ".metricaggregation", "MetricDefinition": ".metricdefinition", "MetricDefinitionTypedDict": ".metricdefinition", @@ -6647,6 +7217,9 @@ "NetworkEncodedInputTypedDict": ".networkencodedinput", "NoneAuthMethod": ".noneauthmethod", "NoneAuthMethodTypedDict": ".noneauthmethod", + "NumericScoreMetric": ".numericscoremetric", + "NumericStatistics": ".numericstatistics", + "NumericStatisticsTypedDict": ".numericstatistics", "OAuth2AuthMethod": ".oauth2authmethod", "OAuth2AuthMethodTypedDict": ".oauth2authmethod", "OAuth2AuthorizationCodeAuthMethod": ".oauth2authorizationcodeauthmethod", @@ -6721,8 +7294,18 @@ "OCRTitleBlockTypedDict": ".ocrtitleblock", "OCRUsageInfo": ".ocrusageinfo", "OCRUsageInfoTypedDict": ".ocrusageinfo", - "Direction": ".orderbyclause", + "Optimization": ".optimization", + "OptimizationTypedDict": ".optimization", + "OptimizationDetail": ".optimizationdetail", + "OptimizationDetailTypedDict": ".optimizationdetail", + "OptimizationReference": ".optimizationreference", + "OptimizationReferenceTypedDict": ".optimizationreference", + "OptimizationTrialObservation": ".optimizationtrialobservation", + "OptimizationTrialObservationTypedDict": ".optimizationtrialobservation", + "OptimizationTrialWithObservations": ".optimizationtrialwithobservations", + "OptimizationTrialWithObservationsTypedDict": ".optimizationtrialwithobservations", "OrderByClause": ".orderbyclause", + "OrderByClauseDirection": ".orderbyclause", "OrderByClauseTypedDict": ".orderbyclause", "OtelFieldDefinition": ".otelfielddefinition", "OtelFieldDefinitionType": ".otelfielddefinition", @@ -6730,7 +7313,6 @@ "SupportedOperator": ".otelfielddefinition", "OTLPDestination": ".otlpdestination", "OTLPDestinationTypedDict": ".otlpdestination", - "OutboundAuthenticationType": ".outboundauthenticationtype", "OutputContentChunks": ".outputcontentchunks", "OutputContentChunksTypedDict": ".outputcontentchunks", "PaginatedConnectors": ".paginatedconnectors", @@ -6741,12 +7323,26 @@ "PaginatedResultDatasetPreviewTypedDict": ".paginatedresultdatasetpreview", "PaginatedResultDatasetRecord": ".paginatedresultdatasetrecord", "PaginatedResultDatasetRecordTypedDict": ".paginatedresultdatasetrecord", + "PaginatedResultEvaluationRunRecordV2Response": ".paginatedresultevaluationrunrecordv2response", + "PaginatedResultEvaluationRunRecordV2ResponseTypedDict": ".paginatedresultevaluationrunrecordv2response", + "PaginatedResultEvaluationRunV2Response": ".paginatedresultevaluationrunv2response", + "PaginatedResultEvaluationRunV2ResponseTypedDict": ".paginatedresultevaluationrunv2response", + "PaginatedResultEvaluationRunV2WithRefsResponse": ".paginatedresultevaluationrunv2withrefsresponse", + "PaginatedResultEvaluationRunV2WithRefsResponseTypedDict": ".paginatedresultevaluationrunv2withrefsresponse", + "PaginatedResultEvaluationV2": ".paginatedresultevaluationv2", + "PaginatedResultEvaluationV2TypedDict": ".paginatedresultevaluationv2", "PaginatedResultJudgePreview": ".paginatedresultjudgepreview", "PaginatedResultJudgePreviewTypedDict": ".paginatedresultjudgepreview", + "PaginatedResultOptimization": ".paginatedresultoptimization", + "PaginatedResultOptimizationTypedDict": ".paginatedresultoptimization", + "PaginatedResultOptimizationTrialWithObservations": ".paginatedresultoptimizationtrialwithobservations", + "PaginatedResultOptimizationTrialWithObservationsTypedDict": ".paginatedresultoptimizationtrialwithobservations", "PaginatedResultPipeline": ".paginatedresultpipeline", "PaginatedResultPipelineTypedDict": ".paginatedresultpipeline", "PaginatedResultPipelineConfig": ".paginatedresultpipelineconfig", "PaginatedResultPipelineConfigTypedDict": ".paginatedresultpipelineconfig", + "PaginatedResultProject": ".paginatedresultproject", + "PaginatedResultProjectTypedDict": ".paginatedresultproject", "PaginationInfo": ".paginationinfo", "PaginationInfoTypedDict": ".paginationinfo", "PaginationResponse": ".paginationresponse", @@ -6755,6 +7351,10 @@ "PartialScheduleDefinitionTypedDict": ".partialscheduledefinition", "PauseScheduleV1WorkflowsSchedulesScheduleIDPausePostRequest": ".pause_schedule_v1_workflows_schedules_schedule_id_pause_postop", "PauseScheduleV1WorkflowsSchedulesScheduleIDPausePostRequestTypedDict": ".pause_schedule_v1_workflows_schedules_schedule_id_pause_postop", + "Percentile": ".percentilestatisticspec", + "PercentileStatisticSpec": ".percentilestatisticspec", + "PercentileStatisticSpecTypedDict": ".percentilestatisticspec", + "PercentileTypedDict": ".percentilestatisticspec", "Pipeline": ".pipeline", "PipelineTypedDict": ".pipeline", "PipelineConfig": ".pipelineconfig", @@ -6785,6 +7385,12 @@ "ProcessingStatus": ".processingstatus", "ProcessingStatusTypedDict": ".processingstatus", "ProcessStatus": ".processstatus", + "Project": ".project", + "ProjectTypedDict": ".project", + "ProjectEvaluationSummary": ".projectevaluationsummary", + "ProjectEvaluationSummaryTypedDict": ".projectevaluationsummary", + "Projects": ".projects", + "ProjectsTypedDict": ".projects", "Prompt": ".prompt", "PromptTypedDict": ".prompt", "PromptArgument": ".promptargument", @@ -6883,6 +7489,7 @@ "RealtimeTranscriptionSessionUpdatePayload": ".realtimetranscriptionsessionupdatepayload", "RealtimeTranscriptionSessionUpdatePayloadTypedDict": ".realtimetranscriptionsessionupdatepayload", "ReasoningEffort": ".reasoningeffort", + "RecordSortField": ".recordsortfield", "ReferenceChunk": ".referencechunk", "ReferenceChunkTypedDict": ".referencechunk", "ReferenceID": ".referencechunk", @@ -6909,8 +7516,17 @@ "ResetWorkflowV1WorkflowsExecutionsExecutionIDResetPostRequestTypedDict": ".reset_workflow_v1_workflows_executions_execution_id_reset_postop", "ResetInvocationBody": ".resetinvocationbody", "ResetInvocationBodyTypedDict": ".resetinvocationbody", + "ResourceChunk": ".resourcechunk", + "ResourceChunkContent": ".resourcechunk", + "ResourceChunkContentTypedDict": ".resourcechunk", + "ResourceChunkTypedDict": ".resourcechunk", + "UnknownResourceChunkContent": ".resourcechunk", "ResourceLink": ".resourcelink", "ResourceLinkTypedDict": ".resourcelink", + "Metadata": ".resourcelinkchunk", + "MetadataTypedDict": ".resourcelinkchunk", + "ResourceLinkChunk": ".resourcelinkchunk", + "ResourceLinkChunkTypedDict": ".resourcelinkchunk", "ResourcesCapability": ".resourcescapability", "ResourcesCapabilityTypedDict": ".resourcescapability", "ResourceVisibility": ".resourcevisibility", @@ -6941,6 +7557,16 @@ "RRFRetrieverRetriever": ".rrfretriever", "RRFRetrieverRetrieverTypedDict": ".rrfretriever", "RRFRetrieverTypedDict": ".rrfretriever", + "RunEvaluationSummary": ".runevaluationsummary", + "RunEvaluationSummaryTypedDict": ".runevaluationsummary", + "RunOptimizationRef": ".runoptimizationref", + "RunOptimizationRefTypedDict": ".runoptimizationref", + "RunOwnershipFilter": ".runownershipfilter", + "RunOwnershipFilterTypedDict": ".runownershipfilter", + "RunProjectSummary": ".runprojectsummary", + "RunProjectSummaryTypedDict": ".runprojectsummary", + "RunStatisticsResponse": ".runstatisticsresponse", + "RunStatisticsResponseTypedDict": ".runstatisticsresponse", "SampleType": ".sampletype", "SamplingCapability": ".samplingcapability", "SamplingCapabilityTypedDict": ".samplingcapability", @@ -6948,6 +7574,8 @@ "ScalarMetricTypedDict": ".scalarmetric", "ScalarMetricValue": ".scalarmetric", "ScalarMetricValueTypedDict": ".scalarmetric", + "ScalarStatisticValue": ".scalarstatisticvalue", + "ScalarStatisticValueTypedDict": ".scalarstatisticvalue", "ScheduleCalendar": ".schedulecalendar", "ScheduleCalendarTypedDict": ".schedulecalendar", "ScheduleDefinition": ".scheduledefinition", @@ -6969,6 +7597,21 @@ "SchemaFieldIndex": ".schemafieldindex", "SchemaFieldRankingType": ".schemafieldrankingtype", "SchemaFieldStorage": ".schemafieldstorage", + "ScoreFilter": ".scorefilter", + "ScoreFilterTypedDict": ".scorefilter", + "ScoreFilterValue": ".scorefilter", + "ScoreFilterValueTypedDict": ".scorefilter", + "ScoreFilterGroup": ".scorefiltergroup", + "ScoreFilterGroupTypedDict": ".scorefiltergroup", + "ScoreOperator": ".scoreoperator", + "ScoreSortInput": ".scoresortinput", + "ScoreSortInputTypedDict": ".scoresortinput", + "SearchAllEvaluationRunsV2V1ObservabilityEvaluationRunsV2SearchPostRequest": ".search_all_evaluation_runs_v2_v1_observability_evaluation_runs_v2_search_postop", + "SearchAllEvaluationRunsV2V1ObservabilityEvaluationRunsV2SearchPostRequestTypedDict": ".search_all_evaluation_runs_v2_v1_observability_evaluation_runs_v2_search_postop", + "SearchEvaluationRunRecordsV2V1ObservabilityEvaluationRunsV2RunIDRecordsSearchPostRequest": ".search_evaluation_run_records_v2_v1_observability_evaluation_runs_v2_run_id_records_search_postop", + "SearchEvaluationRunRecordsV2V1ObservabilityEvaluationRunsV2RunIDRecordsSearchPostRequestTypedDict": ".search_evaluation_run_records_v2_v1_observability_evaluation_runs_v2_run_id_records_search_postop", + "SearchEvaluationRunsV2V1ObservabilityEvaluationsV2EvaluationSlugRunsSearchPostRequest": ".search_evaluation_runs_v2_v1_observability_evaluations_v2_evaluation_slug_runs_search_postop", + "SearchEvaluationRunsV2V1ObservabilityEvaluationsV2EvaluationSlugRunsSearchPostRequestTypedDict": ".search_evaluation_runs_v2_v1_observability_evaluations_v2_evaluation_slug_runs_search_postop", "SearchIndexV1RagManagedIndexesIndexNameSearchPostRequest": ".search_index_v1_rag_managed_indexes_index_name_search_postop", "SearchIndexV1RagManagedIndexesIndexNameSearchPostRequestTypedDict": ".search_index_v1_rag_managed_indexes_index_name_search_postop", "SearchLatestSpanEvaluationsV1ObservabilitySpansEvaluationsSearchLatestPostRequest": ".search_latest_span_evaluations_v1_observability_spans_evaluations_search_latest_postop", @@ -6981,6 +7624,8 @@ "SearchSpansV1ObservabilitySpansSearchPostRequestTypedDict": ".search_spans_v1_observability_spans_search_postop", "SearchTracesV1ObservabilityTracesSearchPostRequest": ".search_traces_v1_observability_traces_search_postop", "SearchTracesV1ObservabilityTracesSearchPostRequestTypedDict": ".search_traces_v1_observability_traces_search_postop", + "SearchAllEvaluationRunsResponse": ".searchallevaluationrunsresponse", + "SearchAllEvaluationRunsResponseTypedDict": ".searchallevaluationrunsresponse", "SearchChunkResponse": ".searchchunkresponse", "SearchChunkResponseTypedDict": ".searchchunkresponse", "SearchHitResponse": ".searchhitresponse", @@ -7029,6 +7674,9 @@ "SignalInvocationBodyTypedDict": ".signalinvocationbody", "SignalWorkflowResponse": ".signalworkflowresponse", "SignalWorkflowResponseTypedDict": ".signalworkflowresponse", + "SimpleNumericStatisticSpec": ".simplenumericstatisticspec", + "SimpleNumericStatisticSpecKind": ".simplenumericstatisticspec", + "SimpleNumericStatisticSpecTypedDict": ".simplenumericstatisticspec", "Skill": ".skill", "SkillTypedDict": ".skill", "RawContent": ".skillassetcontent", @@ -7065,6 +7713,7 @@ "UpdateSkillRequestTypedDict": ".skills_updateop", "SkillVersion": ".skillversion", "SkillVersionTypedDict": ".skillversion", + "SortDirection": ".sortdirection", "SortOrder": ".sortorder", "Source": ".source", "SourceKind": ".sourcekind", @@ -7129,12 +7778,31 @@ "StreamEventSsePayloadTypedDict": ".streameventssepayload", "StreamEventWorkflowContext": ".streameventworkflowcontext", "StreamEventWorkflowContextTypedDict": ".streameventworkflowcontext", + "SystemFilter": ".systemfilter", + "SystemFilterTypedDict": ".systemfilter", "SystemMessage": ".systemmessage", "SystemMessageContent": ".systemmessage", "SystemMessageContentTypedDict": ".systemmessage", "SystemMessageTypedDict": ".systemmessage", "SystemMessageContentChunks": ".systemmessagecontentchunks", "SystemMessageContentChunksTypedDict": ".systemmessagecontentchunks", + "SystemNameFilter": ".systemnamefilter", + "SystemNameFilterTypedDict": ".systemnamefilter", + "SystemNameFilterGroup": ".systemnamefiltergroup", + "SystemNameFilterGroupTypedDict": ".systemnamefiltergroup", + "SystemParamFilter": ".systemparamfilter", + "SystemParamFilterTypedDict": ".systemparamfilter", + "SystemParamFilterValue": ".systemparamfilter", + "SystemParamFilterValueTypedDict": ".systemparamfilter", + "SystemParamFilterGroup": ".systemparamfiltergroup", + "SystemParamFilterGroupTypedDict": ".systemparamfiltergroup", + "SystemParamOperator": ".systemparamoperator", + "Params": ".systemv2", + "ParamsTypedDict": ".systemv2", + "SystemV2": ".systemv2", + "SystemV2TypedDict": ".systemv2", + "TagFilter": ".tagfilter", + "TagFilterTypedDict": ".tagfilter", "TasksElicitationCapability": ".taskselicitationcapability", "TasksElicitationCapabilityTypedDict": ".taskselicitationcapability", "TasksSamplingCapability": ".taskssamplingcapability", @@ -7300,6 +7968,8 @@ "UnregisterDeploymentV1RagDeploymentsDeploymentIDDeleteRequestTypedDict": ".unregister_deployment_v1_rag_deployments_deployment_id_deleteop", "UnscheduleWorkflowV1WorkflowsSchedulesScheduleIDDeleteRequest": ".unschedule_workflow_v1_workflows_schedules_schedule_id_deleteop", "UnscheduleWorkflowV1WorkflowsSchedulesScheduleIDDeleteRequestTypedDict": ".unschedule_workflow_v1_workflows_schedules_schedule_id_deleteop", + "UnsupportedStatistics": ".unsupportedstatistics", + "UnsupportedStatisticsTypedDict": ".unsupportedstatistics", "UpdateDatasetRecordPayloadV1ObservabilityDatasetRecordsDatasetRecordIDPayloadPutRequest": ".update_dataset_record_payload_v1_observability_dataset_records_dataset_record_id_payload_putop", "UpdateDatasetRecordPayloadV1ObservabilityDatasetRecordsDatasetRecordIDPayloadPutRequestTypedDict": ".update_dataset_record_payload_v1_observability_dataset_records_dataset_record_id_payload_putop", "UpdateDatasetRecordPropertiesV1ObservabilityDatasetRecordsDatasetRecordIDPropertiesPutRequest": ".update_dataset_record_properties_v1_observability_dataset_records_dataset_record_id_properties_putop", @@ -7430,6 +8100,7 @@ "VoiceCreateRequest": ".voicecreaterequest", "VoiceCreateRequestTypedDict": ".voicecreaterequest", "VoiceGender": ".voicegender", + "VoiceKind": ".voicekind", "VoiceListPage": ".voicelistpage", "VoiceListPageTypedDict": ".voicelistpage", "VoiceListResponse": ".voicelistresponse", diff --git a/src/mistralai/client/models/authenticationconfiguration.py b/src/mistralai/client/models/authenticationconfiguration.py index ff29038ad..d7eda889c 100644 --- a/src/mistralai/client/models/authenticationconfiguration.py +++ b/src/mistralai/client/models/authenticationconfiguration.py @@ -1,9 +1,9 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations +from .authenticationtype import AuthenticationType from .consumertype import ConsumerType from .credentialsstatus import CredentialsStatus, CredentialsStatusTypedDict -from .outboundauthenticationtype import OutboundAuthenticationType from mistralai.client.types import ( BaseModel, Nullable, @@ -18,7 +18,7 @@ class AuthenticationConfigurationTypedDict(TypedDict): name: str - authentication_type: OutboundAuthenticationType + authentication_type: AuthenticationType scope: ConsumerType title: NotRequired[Nullable[str]] status: NotRequired[Nullable[CredentialsStatusTypedDict]] @@ -29,7 +29,7 @@ class AuthenticationConfigurationTypedDict(TypedDict): class AuthenticationConfiguration(BaseModel): name: str - authentication_type: OutboundAuthenticationType + authentication_type: AuthenticationType scope: ConsumerType diff --git a/src/mistralai/client/models/authenticationmethodcreateorupdaterequest.py b/src/mistralai/client/models/authenticationmethodcreateorupdaterequest.py index 53d08e4eb..0ddd2a0ff 100644 --- a/src/mistralai/client/models/authenticationmethodcreateorupdaterequest.py +++ b/src/mistralai/client/models/authenticationmethodcreateorupdaterequest.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .authdirection import AuthDirection +from .authenticationtype import AuthenticationType from .connectorauthenticationheader import ( ConnectorAuthenticationHeader, ConnectorAuthenticationHeaderTypedDict, @@ -11,9 +11,7 @@ ExtendedOAuthServerMetadataTypedDict, ) from .globalheadervalue import GlobalHeaderValue, GlobalHeaderValueTypedDict -from .inboundauthenticationtype import InboundAuthenticationType from .oauth2metadatasecrets import Oauth2MetadataSecrets, Oauth2MetadataSecretsTypedDict -from .outboundauthenticationtype import OutboundAuthenticationType from mistralai.client.types import ( BaseModel, Nullable, @@ -22,26 +20,12 @@ UNSET_SENTINEL, ) from pydantic import model_serializer -from typing import Dict, List, Optional, Union -from typing_extensions import NotRequired, TypeAliasType, TypedDict - - -MethodTypeTypedDict = TypeAliasType( - "MethodTypeTypedDict", Union[OutboundAuthenticationType, InboundAuthenticationType] -) -r"""The type of authentication method (e.g. oauth2, bearer, none).""" - - -MethodType = TypeAliasType( - "MethodType", Union[OutboundAuthenticationType, InboundAuthenticationType] -) -r"""The type of authentication method (e.g. oauth2, bearer, none).""" +from typing import Dict, List, Optional +from typing_extensions import NotRequired, TypedDict class AuthenticationMethodCreateOrUpdateRequestTypedDict(TypedDict): - method_type: MethodTypeTypedDict - r"""The type of authentication method (e.g. oauth2, bearer, none).""" - auth_direction: NotRequired[AuthDirection] + method_type: AuthenticationType headers: NotRequired[Nullable[List[ConnectorAuthenticationHeaderTypedDict]]] r"""Set of headers to connect to the connector""" global_headers: NotRequired[Dict[str, GlobalHeaderValueTypedDict]] @@ -53,10 +37,7 @@ class AuthenticationMethodCreateOrUpdateRequestTypedDict(TypedDict): class AuthenticationMethodCreateOrUpdateRequest(BaseModel): - method_type: MethodType - r"""The type of authentication method (e.g. oauth2, bearer, none).""" - - auth_direction: Optional[AuthDirection] = None + method_type: AuthenticationType headers: OptionalNullable[List[ConnectorAuthenticationHeader]] = UNSET r"""Set of headers to connect to the connector""" @@ -74,7 +55,6 @@ class AuthenticationMethodCreateOrUpdateRequest(BaseModel): def serialize_model(self, handler): optional_fields = set( [ - "auth_direction", "headers", "global_headers", "oauth2_metadata_secrets", diff --git a/src/mistralai/client/models/outboundauthenticationtype.py b/src/mistralai/client/models/authenticationtype.py similarity index 90% rename from src/mistralai/client/models/outboundauthenticationtype.py rename to src/mistralai/client/models/authenticationtype.py index 49a259dca..ac0dcdba6 100644 --- a/src/mistralai/client/models/outboundauthenticationtype.py +++ b/src/mistralai/client/models/authenticationtype.py @@ -5,7 +5,7 @@ from typing import Literal, Union -OutboundAuthenticationType = Union[ +AuthenticationType = Union[ Literal[ "oauth2", "bearer", diff --git a/src/mistralai/client/models/categoricalstatistics.py b/src/mistralai/client/models/categoricalstatistics.py new file mode 100644 index 000000000..433fd027e --- /dev/null +++ b/src/mistralai/client/models/categoricalstatistics.py @@ -0,0 +1,81 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .confusionmatrix import ConfusionMatrix, ConfusionMatrixTypedDict +from .scalarstatisticvalue import ScalarStatisticValue, ScalarStatisticValueTypedDict +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from mistralai.client.utils import validate_const +import pydantic +from pydantic import model_serializer +from pydantic.functional_validators import AfterValidator +from typing import Dict, List, Literal, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class CategoricalStatisticsTypedDict(TypedDict): + frequencies: Dict[str, int] + mode: List[str] + count: int + type: Literal["categorical"] + values: NotRequired[Nullable[List[ScalarStatisticValueTypedDict]]] + excluded_count: NotRequired[int] + confusion_matrix: NotRequired[Nullable[ConfusionMatrixTypedDict]] + + +class CategoricalStatistics(BaseModel): + frequencies: Dict[str, int] + + mode: List[str] + + count: int + + type: Annotated[ + Annotated[ + Optional[Literal["categorical"]], + AfterValidator(validate_const("categorical")), + ], + pydantic.Field(alias="type"), + ] = "categorical" + + values: OptionalNullable[List[ScalarStatisticValue]] = UNSET + + excluded_count: Optional[int] = 0 + + confusion_matrix: OptionalNullable[ConfusionMatrix] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["type", "values", "excluded_count", "confusion_matrix"]) + nullable_fields = set(["values", "confusion_matrix"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m + + +try: + CategoricalStatistics.model_rebuild() +except NameError: + pass diff --git a/src/mistralai/client/models/classificationstatisticspec.py b/src/mistralai/client/models/classificationstatisticspec.py new file mode 100644 index 000000000..80ac1c881 --- /dev/null +++ b/src/mistralai/client/models/classificationstatisticspec.py @@ -0,0 +1,103 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .goalspec import GoalSpec, GoalSpecTypedDict +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, + UnrecognizedStr, +) +from pydantic import model_serializer +from typing import List, Literal, Optional, Union +from typing_extensions import NotRequired, TypedDict + + +ClassificationStatisticSpecKind = Union[ + Literal[ + "precision", + "recall", + "f1", + ], + UnrecognizedStr, +] + + +Average = Union[ + Literal[ + "macro", + "micro", + "weighted", + ], + UnrecognizedStr, +] + + +class ClassificationStatisticSpecTypedDict(TypedDict): + r"""A classification metric (``precision``/``recall``/``f1``) over ``(expected, predicted)`` pairs. + + The predicted label is the score ``value``; the expected label is read from the score ``metadata`` + under ``expected_key`` (default ``\"expected\"``). Provide **exactly one** of ``positive_label`` (a + binary metric scored against that one class) or ``average`` (a multi-class averaging scheme). + + ``labels`` pins the class universe so filtered views keep a stable, comparable denominator. + """ + + kind: ClassificationStatisticSpecKind + positive_label: NotRequired[Nullable[str]] + average: NotRequired[Nullable[Average]] + expected_key: NotRequired[str] + labels: NotRequired[Nullable[List[str]]] + goal: NotRequired[Nullable[GoalSpecTypedDict]] + + +class ClassificationStatisticSpec(BaseModel): + r"""A classification metric (``precision``/``recall``/``f1``) over ``(expected, predicted)`` pairs. + + The predicted label is the score ``value``; the expected label is read from the score ``metadata`` + under ``expected_key`` (default ``\"expected\"``). Provide **exactly one** of ``positive_label`` (a + binary metric scored against that one class) or ``average`` (a multi-class averaging scheme). + + ``labels`` pins the class universe so filtered views keep a stable, comparable denominator. + """ + + kind: ClassificationStatisticSpecKind + + positive_label: OptionalNullable[str] = UNSET + + average: OptionalNullable[Average] = UNSET + + expected_key: Optional[str] = "expected" + + labels: OptionalNullable[List[str]] = UNSET + + goal: OptionalNullable[GoalSpec] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + ["positive_label", "average", "expected_key", "labels", "goal"] + ) + nullable_fields = set(["positive_label", "average", "labels", "goal"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/compute_filtered_run_statistics_v2_v1_observability_evaluation_runs_v2_run_id_statistics_compute_postop.py b/src/mistralai/client/models/compute_filtered_run_statistics_v2_v1_observability_evaluation_runs_v2_run_id_statistics_compute_postop.py new file mode 100644 index 000000000..de900705b --- /dev/null +++ b/src/mistralai/client/models/compute_filtered_run_statistics_v2_v1_observability_evaluation_runs_v2_run_id_statistics_compute_postop.py @@ -0,0 +1,64 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .evaluationrunrecordfilterinput import ( + EvaluationRunRecordFilterInput, + EvaluationRunRecordFilterInputTypedDict, +) +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from mistralai.client.utils import FieldMetadata, PathParamMetadata, RequestMetadata +from pydantic import model_serializer +from typing_extensions import Annotated, NotRequired, TypedDict + + +class ComputeFilteredRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsComputePostRequestTypedDict( + TypedDict +): + run_id: str + evaluation_run_record_filter_input: NotRequired[ + Nullable[EvaluationRunRecordFilterInputTypedDict] + ] + + +class ComputeFilteredRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsComputePostRequest( + BaseModel +): + run_id: Annotated[ + str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) + ] + + evaluation_run_record_filter_input: Annotated[ + OptionalNullable[EvaluationRunRecordFilterInput], + FieldMetadata(request=RequestMetadata(media_type="application/json")), + ] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["EvaluationRunRecordFilterInput"]) + nullable_fields = set(["EvaluationRunRecordFilterInput"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/confusionmatrix.py b/src/mistralai/client/models/confusionmatrix.py new file mode 100644 index 000000000..32eea9194 --- /dev/null +++ b/src/mistralai/client/models/confusionmatrix.py @@ -0,0 +1,31 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import BaseModel +from typing import List +from typing_extensions import TypedDict + + +class ConfusionMatrixTypedDict(TypedDict): + r"""A confusion matrix over ``(expected, predicted)`` label pairs. + + ``matrix[i][j]`` is the number of samples whose expected label is ``labels[i]`` and predicted + label is ``labels[j]``. It is the complete, aggregatable representation: precision/recall/f1 for + any class derive from it, and matrices from several runs merge by element-wise sum. + """ + + labels: List[str] + matrix: List[List[int]] + + +class ConfusionMatrix(BaseModel): + r"""A confusion matrix over ``(expected, predicted)`` label pairs. + + ``matrix[i][j]`` is the number of samples whose expected label is ``labels[i]`` and predicted + label is ``labels[j]``. It is the complete, aggregatable representation: precision/recall/f1 for + any class derive from it, and matrices from several runs merge by element-wise sum. + """ + + labels: List[str] + + matrix: List[List[int]] diff --git a/src/mistralai/client/models/connector_get_auth_url_v1op.py b/src/mistralai/client/models/connector_get_auth_url_v1op.py index 1ff713920..6886fdb80 100644 --- a/src/mistralai/client/models/connector_get_auth_url_v1op.py +++ b/src/mistralai/client/models/connector_get_auth_url_v1op.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .outboundauthenticationtype import OutboundAuthenticationType +from .authenticationtype import AuthenticationType from mistralai.client.types import ( BaseModel, Nullable, @@ -18,7 +18,7 @@ class ConnectorGetAuthURLV1RequestTypedDict(TypedDict): connector_id_or_name: str app_return_url: NotRequired[Nullable[str]] - method_type: NotRequired[OutboundAuthenticationType] + method_type: NotRequired[AuthenticationType] r"""Auth method type to use for the authorization URL. Required when the connector supports multiple interactive auth methods; otherwise the sole method is selected automatically. Use this to pick a specific method (e.g. 'oauth2' vs 'github_app').""" credentials_name: NotRequired[Nullable[str]] credentials_title: NotRequired[Nullable[str]] @@ -37,7 +37,7 @@ class ConnectorGetAuthURLV1Request(BaseModel): ] = UNSET method_type: Annotated[ - Optional[OutboundAuthenticationType], + Optional[AuthenticationType], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = None r"""Auth method type to use for the authorization URL. Required when the connector supports multiple interactive auth methods; otherwise the sole method is selected automatically. Use this to pick a specific method (e.g. 'oauth2' vs 'github_app').""" diff --git a/src/mistralai/client/models/connector_list_organization_credentials_v1op.py b/src/mistralai/client/models/connector_list_organization_credentials_v1op.py index 7e87736ba..0732c8e77 100644 --- a/src/mistralai/client/models/connector_list_organization_credentials_v1op.py +++ b/src/mistralai/client/models/connector_list_organization_credentials_v1op.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .outboundauthenticationtype import OutboundAuthenticationType +from .authenticationtype import AuthenticationType from mistralai.client.types import ( BaseModel, Nullable, @@ -17,7 +17,7 @@ class ConnectorListOrganizationCredentialsV1RequestTypedDict(TypedDict): connector_id_or_name: str - auth_type: NotRequired[Nullable[OutboundAuthenticationType]] + auth_type: NotRequired[Nullable[AuthenticationType]] fetch_default: NotRequired[bool] @@ -27,7 +27,7 @@ class ConnectorListOrganizationCredentialsV1Request(BaseModel): ] auth_type: Annotated[ - OptionalNullable[OutboundAuthenticationType], + OptionalNullable[AuthenticationType], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = UNSET diff --git a/src/mistralai/client/models/connector_list_user_credentials_v1op.py b/src/mistralai/client/models/connector_list_user_credentials_v1op.py index 569952810..8039e44ba 100644 --- a/src/mistralai/client/models/connector_list_user_credentials_v1op.py +++ b/src/mistralai/client/models/connector_list_user_credentials_v1op.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .outboundauthenticationtype import OutboundAuthenticationType +from .authenticationtype import AuthenticationType from mistralai.client.types import ( BaseModel, Nullable, @@ -17,7 +17,7 @@ class ConnectorListUserCredentialsV1RequestTypedDict(TypedDict): connector_id_or_name: str - auth_type: NotRequired[Nullable[OutboundAuthenticationType]] + auth_type: NotRequired[Nullable[AuthenticationType]] fetch_default: NotRequired[bool] @@ -27,7 +27,7 @@ class ConnectorListUserCredentialsV1Request(BaseModel): ] auth_type: Annotated[ - OptionalNullable[OutboundAuthenticationType], + OptionalNullable[AuthenticationType], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = UNSET diff --git a/src/mistralai/client/models/connector_list_workspace_credentials_v1op.py b/src/mistralai/client/models/connector_list_workspace_credentials_v1op.py index 35b14f8bf..cefe59d80 100644 --- a/src/mistralai/client/models/connector_list_workspace_credentials_v1op.py +++ b/src/mistralai/client/models/connector_list_workspace_credentials_v1op.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .outboundauthenticationtype import OutboundAuthenticationType +from .authenticationtype import AuthenticationType from mistralai.client.types import ( BaseModel, Nullable, @@ -17,7 +17,7 @@ class ConnectorListWorkspaceCredentialsV1RequestTypedDict(TypedDict): connector_id_or_name: str - auth_type: NotRequired[Nullable[OutboundAuthenticationType]] + auth_type: NotRequired[Nullable[AuthenticationType]] fetch_default: NotRequired[bool] @@ -27,7 +27,7 @@ class ConnectorListWorkspaceCredentialsV1Request(BaseModel): ] auth_type: Annotated[ - OptionalNullable[OutboundAuthenticationType], + OptionalNullable[AuthenticationType], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = UNSET diff --git a/src/mistralai/client/models/contentchunk.py b/src/mistralai/client/models/contentchunk.py index 1490577d7..dc34ed6d4 100644 --- a/src/mistralai/client/models/contentchunk.py +++ b/src/mistralai/client/models/contentchunk.py @@ -6,6 +6,8 @@ from .filechunk import FileChunk, FileChunkTypedDict from .imageurlchunk import ImageURLChunk, ImageURLChunkTypedDict from .referencechunk import ReferenceChunk, ReferenceChunkTypedDict +from .resourcechunk import ResourceChunk, ResourceChunkTypedDict +from .resourcelinkchunk import ResourceLinkChunk, ResourceLinkChunkTypedDict from .textchunk import TextChunk, TextChunkTypedDict from .thinkchunk import ThinkChunk, ThinkChunkTypedDict from functools import partial @@ -26,6 +28,8 @@ FileChunkTypedDict, AudioChunkTypedDict, DocumentURLChunkTypedDict, + ResourceChunkTypedDict, + ResourceLinkChunkTypedDict, ThinkChunkTypedDict, ], ) @@ -49,6 +53,8 @@ class UnknownContentChunk(BaseModel): "file": FileChunk, "thinking": ThinkChunk, "input_audio": AudioChunk, + "resource": ResourceChunk, + "resource_link": ResourceLinkChunk, } @@ -61,6 +67,8 @@ class UnknownContentChunk(BaseModel): FileChunk, ThinkChunk, AudioChunk, + ResourceChunk, + ResourceLinkChunk, UnknownContentChunk, ], BeforeValidator( diff --git a/src/mistralai/client/models/contentsearchfilter.py b/src/mistralai/client/models/contentsearchfilter.py new file mode 100644 index 000000000..bae545c18 --- /dev/null +++ b/src/mistralai/client/models/contentsearchfilter.py @@ -0,0 +1,53 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .contentsearchoperator import ContentSearchOperator +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class ContentSearchFilterTypedDict(TypedDict): + value: str + path: NotRequired[Nullable[str]] + operator: NotRequired[ContentSearchOperator] + + +class ContentSearchFilter(BaseModel): + value: str + + path: OptionalNullable[str] = UNSET + + operator: Optional[ContentSearchOperator] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["path", "operator"]) + nullable_fields = set(["path"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/contentsearchfiltergroup.py b/src/mistralai/client/models/contentsearchfiltergroup.py new file mode 100644 index 000000000..d5d13b5c9 --- /dev/null +++ b/src/mistralai/client/models/contentsearchfiltergroup.py @@ -0,0 +1,36 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .contentsearchfilter import ContentSearchFilter, ContentSearchFilterTypedDict +from .filtercombinator import FilterCombinator +from mistralai.client.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class ContentSearchFilterGroupTypedDict(TypedDict): + combinator: NotRequired[FilterCombinator] + filters: NotRequired[List[ContentSearchFilterTypedDict]] + + +class ContentSearchFilterGroup(BaseModel): + combinator: Optional[FilterCombinator] = None + + filters: Optional[List[ContentSearchFilter]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["combinator", "filters"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/mistralai/client/models/contentsearchoperator.py b/src/mistralai/client/models/contentsearchoperator.py new file mode 100644 index 000000000..1d3215d94 --- /dev/null +++ b/src/mistralai/client/models/contentsearchoperator.py @@ -0,0 +1,10 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from typing import Literal + + +ContentSearchOperator = Literal[ + "contains", + "equals", +] diff --git a/src/mistralai/client/models/create_dataset_record_v1_observability_datasets_dataset_id_records_postop.py b/src/mistralai/client/models/create_dataset_record_v1_observability_datasets_dataset_id_records_postop.py index 64d702f7e..798cbc747 100644 --- a/src/mistralai/client/models/create_dataset_record_v1_observability_datasets_dataset_id_records_postop.py +++ b/src/mistralai/client/models/create_dataset_record_v1_observability_datasets_dataset_id_records_postop.py @@ -14,6 +14,7 @@ class CreateDatasetRecordV1ObservabilityDatasetsDatasetIDRecordsPostRequestTyped TypedDict ): dataset_id: str + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" create_dataset_record_request: CreateDatasetRecordRequestTypedDict @@ -21,6 +22,7 @@ class CreateDatasetRecordV1ObservabilityDatasetsDatasetIDRecordsPostRequest(Base dataset_id: Annotated[ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) ] + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" create_dataset_record_request: Annotated[ CreateDatasetRecordRequest, diff --git a/src/mistralai/client/models/credentialsresponse.py b/src/mistralai/client/models/credentialsresponse.py index 1d8b533a0..d21279fb9 100644 --- a/src/mistralai/client/models/credentialsresponse.py +++ b/src/mistralai/client/models/credentialsresponse.py @@ -5,7 +5,7 @@ AuthenticationConfiguration, AuthenticationConfigurationTypedDict, ) -from .outboundauthenticationtype import OutboundAuthenticationType +from .authenticationtype import AuthenticationType from mistralai.client.types import BaseModel, UNSET_SENTINEL from pydantic import model_serializer from typing import List, Optional @@ -14,15 +14,13 @@ class CredentialsResponseTypedDict(TypedDict): credentials: List[AuthenticationConfigurationTypedDict] - connector_preset_credentials_for_auth: NotRequired[List[OutboundAuthenticationType]] + connector_preset_credentials_for_auth: NotRequired[List[AuthenticationType]] class CredentialsResponse(BaseModel): credentials: List[AuthenticationConfiguration] - connector_preset_credentials_for_auth: Optional[ - List[OutboundAuthenticationType] - ] = None + connector_preset_credentials_for_auth: Optional[List[AuthenticationType]] = None @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/mistralai/client/models/dataset.py b/src/mistralai/client/models/dataset.py index b4a74b070..a53ff2de4 100644 --- a/src/mistralai/client/models/dataset.py +++ b/src/mistralai/client/models/dataset.py @@ -13,6 +13,7 @@ class DatasetTypedDict(TypedDict): updated_at: datetime deleted_at: Nullable[datetime] name: str + slug: str description: str owner_id: str workspace_id: str @@ -29,6 +30,8 @@ class Dataset(BaseModel): name: str + slug: str + description: str owner_id: str diff --git a/src/mistralai/client/models/datasetpreview.py b/src/mistralai/client/models/datasetpreview.py index e50d0898a..1e071bcf2 100644 --- a/src/mistralai/client/models/datasetpreview.py +++ b/src/mistralai/client/models/datasetpreview.py @@ -13,6 +13,7 @@ class DatasetPreviewTypedDict(TypedDict): updated_at: datetime deleted_at: Nullable[datetime] name: str + slug: str description: str owner_id: str workspace_id: str @@ -29,6 +30,8 @@ class DatasetPreview(BaseModel): name: str + slug: str + description: str owner_id: str diff --git a/src/mistralai/client/models/delete_dataset_v1_observability_datasets_dataset_id_deleteop.py b/src/mistralai/client/models/delete_dataset_v1_observability_datasets_dataset_id_deleteop.py index 84dd3c262..5e7b489a8 100644 --- a/src/mistralai/client/models/delete_dataset_v1_observability_datasets_dataset_id_deleteop.py +++ b/src/mistralai/client/models/delete_dataset_v1_observability_datasets_dataset_id_deleteop.py @@ -8,9 +8,11 @@ class DeleteDatasetV1ObservabilityDatasetsDatasetIDDeleteRequestTypedDict(TypedDict): dataset_id: str + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" class DeleteDatasetV1ObservabilityDatasetsDatasetIDDeleteRequest(BaseModel): dataset_id: Annotated[ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) ] + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" diff --git a/src/mistralai/client/models/evaluationrunfilterinput.py b/src/mistralai/client/models/evaluationrunfilterinput.py new file mode 100644 index 000000000..49bb23ef0 --- /dev/null +++ b/src/mistralai/client/models/evaluationrunfilterinput.py @@ -0,0 +1,105 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .goalstatusfiltergroup import GoalStatusFilterGroup, GoalStatusFilterGroupTypedDict +from .metadatafiltergroup import MetadataFilterGroup, MetadataFilterGroupTypedDict +from .runownershipfilter import RunOwnershipFilter, RunOwnershipFilterTypedDict +from .scorefiltergroup import ScoreFilterGroup, ScoreFilterGroupTypedDict +from .systemfilter import SystemFilter, SystemFilterTypedDict +from .tagfilter import TagFilter, TagFilterTypedDict +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class EvaluationRunFilterInputTypedDict(TypedDict): + run_ids: NotRequired[Nullable[List[str]]] + evaluation_ids: NotRequired[Nullable[List[str]]] + creator_ids: NotRequired[Nullable[List[str]]] + project_ids: NotRequired[Nullable[List[str]]] + ownership: NotRequired[Nullable[RunOwnershipFilterTypedDict]] + tags: NotRequired[Nullable[TagFilterTypedDict]] + score_filters: NotRequired[Nullable[ScoreFilterGroupTypedDict]] + goal_filters: NotRequired[Nullable[GoalStatusFilterGroupTypedDict]] + system: NotRequired[Nullable[SystemFilterTypedDict]] + metadata: NotRequired[Nullable[MetadataFilterGroupTypedDict]] + + +class EvaluationRunFilterInput(BaseModel): + run_ids: OptionalNullable[List[str]] = UNSET + + evaluation_ids: OptionalNullable[List[str]] = UNSET + + creator_ids: OptionalNullable[List[str]] = UNSET + + project_ids: OptionalNullable[List[str]] = UNSET + + ownership: OptionalNullable[RunOwnershipFilter] = UNSET + + tags: OptionalNullable[TagFilter] = UNSET + + score_filters: OptionalNullable[ScoreFilterGroup] = UNSET + + goal_filters: OptionalNullable[GoalStatusFilterGroup] = UNSET + + system: OptionalNullable[SystemFilter] = UNSET + + metadata: OptionalNullable[MetadataFilterGroup] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "run_ids", + "evaluation_ids", + "creator_ids", + "project_ids", + "ownership", + "tags", + "score_filters", + "goal_filters", + "system", + "metadata", + ] + ) + nullable_fields = set( + [ + "run_ids", + "evaluation_ids", + "creator_ids", + "project_ids", + "ownership", + "tags", + "score_filters", + "goal_filters", + "system", + "metadata", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/evaluationrungenerationv2.py b/src/mistralai/client/models/evaluationrungenerationv2.py new file mode 100644 index 000000000..beaa7185e --- /dev/null +++ b/src/mistralai/client/models/evaluationrungenerationv2.py @@ -0,0 +1,87 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .evaluationrunscorev2 import EvaluationRunScoreV2, EvaluationRunScoreV2TypedDict +from .evaluatorstatistics import EvaluatorStatistics, EvaluatorStatisticsTypedDict +from .goalresult import GoalResult, GoalResultTypedDict +from datetime import datetime +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +import pydantic +from pydantic import model_serializer +from typing import Any, Dict, List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class EvaluationRunGenerationV2TypedDict(TypedDict): + id: str + created_at: datetime + updated_at: datetime + deleted_at: Nullable[datetime] + output: Nullable[Any] + metadata: Dict[str, Any] + status: str + error: NotRequired[Nullable[str]] + scores: NotRequired[Dict[str, List[EvaluationRunScoreV2TypedDict]]] + statistics: NotRequired[Dict[str, EvaluatorStatisticsTypedDict]] + goal_results: NotRequired[Dict[str, GoalResultTypedDict]] + + +class EvaluationRunGenerationV2(BaseModel): + id: str + + created_at: datetime + + updated_at: datetime + + deleted_at: Nullable[datetime] + + output: Nullable[Any] + + metadata: Annotated[Dict[str, Any], pydantic.Field(alias="metadata_")] + + status: str + + error: OptionalNullable[str] = UNSET + + scores: Optional[Dict[str, List[EvaluationRunScoreV2]]] = None + + statistics: Optional[Dict[str, EvaluatorStatistics]] = None + + goal_results: Optional[Dict[str, GoalResult]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["error", "scores", "statistics", "goal_results"]) + nullable_fields = set(["deleted_at", "output", "error"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m + + +try: + EvaluationRunGenerationV2.model_rebuild() +except NameError: + pass diff --git a/src/mistralai/client/models/evaluationrunoutputrecordv2.py b/src/mistralai/client/models/evaluationrunoutputrecordv2.py new file mode 100644 index 000000000..a41b4300e --- /dev/null +++ b/src/mistralai/client/models/evaluationrunoutputrecordv2.py @@ -0,0 +1,86 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .evaluationrungenerationv2 import ( + EvaluationRunGenerationV2, + EvaluationRunGenerationV2TypedDict, +) +from .evaluatorstatistics import EvaluatorStatistics, EvaluatorStatisticsTypedDict +from .goalresult import GoalResult, GoalResultTypedDict +from datetime import datetime +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +import pydantic +from pydantic import model_serializer +from typing import Any, Dict, List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class EvaluationRunOutputRecordV2TypedDict(TypedDict): + id: str + created_at: datetime + updated_at: datetime + deleted_at: Nullable[datetime] + metadata: Dict[str, Any] + record_info: NotRequired[Nullable[Dict[str, Any]]] + generations: NotRequired[List[EvaluationRunGenerationV2TypedDict]] + statistics: NotRequired[Dict[str, EvaluatorStatisticsTypedDict]] + goal_results: NotRequired[Dict[str, GoalResultTypedDict]] + + +class EvaluationRunOutputRecordV2(BaseModel): + id: str + + created_at: datetime + + updated_at: datetime + + deleted_at: Nullable[datetime] + + metadata: Annotated[Dict[str, Any], pydantic.Field(alias="metadata_")] + + record_info: OptionalNullable[Dict[str, Any]] = UNSET + + generations: Optional[List[EvaluationRunGenerationV2]] = None + + statistics: Optional[Dict[str, EvaluatorStatistics]] = None + + goal_results: Optional[Dict[str, GoalResult]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + ["record_info", "generations", "statistics", "goal_results"] + ) + nullable_fields = set(["deleted_at", "record_info"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m + + +try: + EvaluationRunOutputRecordV2.model_rebuild() +except NameError: + pass diff --git a/src/mistralai/client/models/evaluationrunrecordfilterinput.py b/src/mistralai/client/models/evaluationrunrecordfilterinput.py new file mode 100644 index 000000000..95f7061b8 --- /dev/null +++ b/src/mistralai/client/models/evaluationrunrecordfilterinput.py @@ -0,0 +1,78 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .contentsearchfiltergroup import ( + ContentSearchFilterGroup, + ContentSearchFilterGroupTypedDict, +) +from .fieldsortinput import FieldSortInput, FieldSortInputTypedDict +from .goalstatusfiltergroup import GoalStatusFilterGroup, GoalStatusFilterGroupTypedDict +from .scorefiltergroup import ScoreFilterGroup, ScoreFilterGroupTypedDict +from .scoresortinput import ScoreSortInput, ScoreSortInputTypedDict +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import Field, SerializeAsAny, model_serializer +from typing import Union +from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict + + +SortTypedDict = TypeAliasType( + "SortTypedDict", Union[FieldSortInputTypedDict, ScoreSortInputTypedDict] +) + + +Sort = Annotated[Union[FieldSortInput, ScoreSortInput], Field(discriminator="kind")] + + +class EvaluationRunRecordFilterInputTypedDict(TypedDict): + input_filters: NotRequired[Nullable[ContentSearchFilterGroupTypedDict]] + output_filters: NotRequired[Nullable[ContentSearchFilterGroupTypedDict]] + score_filters: NotRequired[Nullable[ScoreFilterGroupTypedDict]] + goal_filters: NotRequired[Nullable[GoalStatusFilterGroupTypedDict]] + sort: NotRequired[Nullable[SortTypedDict]] + + +class EvaluationRunRecordFilterInput(BaseModel): + input_filters: OptionalNullable[ContentSearchFilterGroup] = UNSET + + output_filters: OptionalNullable[ContentSearchFilterGroup] = UNSET + + score_filters: OptionalNullable[ScoreFilterGroup] = UNSET + + goal_filters: OptionalNullable[GoalStatusFilterGroup] = UNSET + + sort: SerializeAsAny[OptionalNullable[Sort]] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + ["input_filters", "output_filters", "score_filters", "goal_filters", "sort"] + ) + nullable_fields = set( + ["input_filters", "output_filters", "score_filters", "goal_filters", "sort"] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/evaluationrunrecordv2response.py b/src/mistralai/client/models/evaluationrunrecordv2response.py new file mode 100644 index 000000000..fc0d4d9ab --- /dev/null +++ b/src/mistralai/client/models/evaluationrunrecordv2response.py @@ -0,0 +1,69 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .evaluationrunoutputrecordv2 import ( + EvaluationRunOutputRecordV2, + EvaluationRunOutputRecordV2TypedDict, +) +from datetime import datetime +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import Any +from typing_extensions import NotRequired, TypedDict + + +class EvaluationRunRecordV2ResponseTypedDict(TypedDict): + id: str + created_at: datetime + updated_at: datetime + deleted_at: Nullable[datetime] + input: Any + dataset_record_id: NotRequired[Nullable[str]] + output_record: NotRequired[Nullable[EvaluationRunOutputRecordV2TypedDict]] + + +class EvaluationRunRecordV2Response(BaseModel): + id: str + + created_at: datetime + + updated_at: datetime + + deleted_at: Nullable[datetime] + + input: Any + + dataset_record_id: OptionalNullable[str] = UNSET + + output_record: OptionalNullable[EvaluationRunOutputRecordV2] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["dataset_record_id", "output_record"]) + nullable_fields = set(["deleted_at", "dataset_record_id", "output_record"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/evaluationrunscorev2.py b/src/mistralai/client/models/evaluationrunscorev2.py new file mode 100644 index 000000000..a9093050e --- /dev/null +++ b/src/mistralai/client/models/evaluationrunscorev2.py @@ -0,0 +1,78 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from datetime import datetime +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +import pydantic +from pydantic import model_serializer +from typing import Any, Dict +from typing_extensions import Annotated, NotRequired, TypedDict + + +class EvaluationRunScoreV2TypedDict(TypedDict): + id: str + created_at: datetime + updated_at: datetime + deleted_at: Nullable[datetime] + value: Nullable[Any] + metadata: Dict[str, Any] + status: str + rationale: NotRequired[Nullable[str]] + error: NotRequired[Nullable[str]] + + +class EvaluationRunScoreV2(BaseModel): + id: str + + created_at: datetime + + updated_at: datetime + + deleted_at: Nullable[datetime] + + value: Nullable[Any] + + metadata: Annotated[Dict[str, Any], pydantic.Field(alias="metadata_")] + + status: str + + rationale: OptionalNullable[str] = UNSET + + error: OptionalNullable[str] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["rationale", "error"]) + nullable_fields = set(["deleted_at", "value", "rationale", "error"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m + + +try: + EvaluationRunScoreV2.model_rebuild() +except NameError: + pass diff --git a/src/mistralai/client/models/evaluationrunv2response.py b/src/mistralai/client/models/evaluationrunv2response.py new file mode 100644 index 000000000..bfc5e5746 --- /dev/null +++ b/src/mistralai/client/models/evaluationrunv2response.py @@ -0,0 +1,146 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .evaluationrunscorev2 import EvaluationRunScoreV2, EvaluationRunScoreV2TypedDict +from .evaluatorstatistics import EvaluatorStatistics, EvaluatorStatisticsTypedDict +from .evaluatorv2 import EvaluatorV2, EvaluatorV2TypedDict +from .goalresult import GoalResult, GoalResultTypedDict +from .runoptimizationref import RunOptimizationRef, RunOptimizationRefTypedDict +from .systemv2 import SystemV2, SystemV2TypedDict +from datetime import datetime +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +import pydantic +from pydantic import model_serializer +from typing import Any, Dict, List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class EvaluationRunV2ResponseTypedDict(TypedDict): + id: str + created_at: datetime + updated_at: datetime + deleted_at: Nullable[datetime] + creator_id: str + evaluation_id: str + name: str + description: Nullable[str] + tags: List[str] + metadata: Dict[str, Any] + num_generations: int + evaluators: List[EvaluatorV2TypedDict] + run_info: NotRequired[Nullable[Dict[str, Any]]] + status: NotRequired[str] + dataset_id: NotRequired[Nullable[str]] + run_evaluators: NotRequired[List[EvaluatorV2TypedDict]] + system: NotRequired[Nullable[SystemV2TypedDict]] + statistics: NotRequired[Dict[str, EvaluatorStatisticsTypedDict]] + goal_results: NotRequired[Dict[str, GoalResultTypedDict]] + passed: NotRequired[Nullable[bool]] + run_scores: NotRequired[Dict[str, EvaluationRunScoreV2TypedDict]] + optimization: NotRequired[Nullable[RunOptimizationRefTypedDict]] + + +class EvaluationRunV2Response(BaseModel): + id: str + + created_at: datetime + + updated_at: datetime + + deleted_at: Nullable[datetime] + + creator_id: str + + evaluation_id: str + + name: str + + description: Nullable[str] + + tags: List[str] + + metadata: Annotated[Dict[str, Any], pydantic.Field(alias="metadata_")] + + num_generations: int + + evaluators: List[EvaluatorV2] + + run_info: OptionalNullable[Dict[str, Any]] = UNSET + + status: Optional[str] = "completed" + + dataset_id: OptionalNullable[str] = UNSET + + run_evaluators: Optional[List[EvaluatorV2]] = None + + system: OptionalNullable[SystemV2] = UNSET + + statistics: Optional[Dict[str, EvaluatorStatistics]] = None + + goal_results: Optional[Dict[str, GoalResult]] = None + + passed: OptionalNullable[bool] = UNSET + + run_scores: Optional[Dict[str, EvaluationRunScoreV2]] = None + + optimization: OptionalNullable[RunOptimizationRef] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "run_info", + "status", + "dataset_id", + "run_evaluators", + "system", + "statistics", + "goal_results", + "passed", + "run_scores", + "optimization", + ] + ) + nullable_fields = set( + [ + "deleted_at", + "description", + "run_info", + "dataset_id", + "system", + "passed", + "optimization", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m + + +try: + EvaluationRunV2Response.model_rebuild() +except NameError: + pass diff --git a/src/mistralai/client/models/evaluationrunv2withrefsresponse.py b/src/mistralai/client/models/evaluationrunv2withrefsresponse.py new file mode 100644 index 000000000..5ce234b1f --- /dev/null +++ b/src/mistralai/client/models/evaluationrunv2withrefsresponse.py @@ -0,0 +1,158 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .evaluationrunscorev2 import EvaluationRunScoreV2, EvaluationRunScoreV2TypedDict +from .evaluatorstatistics import EvaluatorStatistics, EvaluatorStatisticsTypedDict +from .evaluatorv2 import EvaluatorV2, EvaluatorV2TypedDict +from .goalresult import GoalResult, GoalResultTypedDict +from .runevaluationsummary import RunEvaluationSummary, RunEvaluationSummaryTypedDict +from .runoptimizationref import RunOptimizationRef, RunOptimizationRefTypedDict +from .runprojectsummary import RunProjectSummary, RunProjectSummaryTypedDict +from .systemv2 import SystemV2, SystemV2TypedDict +from datetime import datetime +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +import pydantic +from pydantic import model_serializer +from typing import Any, Dict, List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class EvaluationRunV2WithRefsResponseTypedDict(TypedDict): + id: str + created_at: datetime + updated_at: datetime + deleted_at: Nullable[datetime] + creator_id: str + evaluation_id: str + name: str + description: Nullable[str] + tags: List[str] + metadata: Dict[str, Any] + num_generations: int + evaluators: List[EvaluatorV2TypedDict] + run_info: NotRequired[Nullable[Dict[str, Any]]] + status: NotRequired[str] + dataset_id: NotRequired[Nullable[str]] + run_evaluators: NotRequired[List[EvaluatorV2TypedDict]] + system: NotRequired[Nullable[SystemV2TypedDict]] + statistics: NotRequired[Dict[str, EvaluatorStatisticsTypedDict]] + goal_results: NotRequired[Dict[str, GoalResultTypedDict]] + passed: NotRequired[Nullable[bool]] + run_scores: NotRequired[Dict[str, EvaluationRunScoreV2TypedDict]] + optimization: NotRequired[Nullable[RunOptimizationRefTypedDict]] + evaluation: NotRequired[Nullable[RunEvaluationSummaryTypedDict]] + project: NotRequired[Nullable[RunProjectSummaryTypedDict]] + + +class EvaluationRunV2WithRefsResponse(BaseModel): + id: str + + created_at: datetime + + updated_at: datetime + + deleted_at: Nullable[datetime] + + creator_id: str + + evaluation_id: str + + name: str + + description: Nullable[str] + + tags: List[str] + + metadata: Annotated[Dict[str, Any], pydantic.Field(alias="metadata_")] + + num_generations: int + + evaluators: List[EvaluatorV2] + + run_info: OptionalNullable[Dict[str, Any]] = UNSET + + status: Optional[str] = "completed" + + dataset_id: OptionalNullable[str] = UNSET + + run_evaluators: Optional[List[EvaluatorV2]] = None + + system: OptionalNullable[SystemV2] = UNSET + + statistics: Optional[Dict[str, EvaluatorStatistics]] = None + + goal_results: Optional[Dict[str, GoalResult]] = None + + passed: OptionalNullable[bool] = UNSET + + run_scores: Optional[Dict[str, EvaluationRunScoreV2]] = None + + optimization: OptionalNullable[RunOptimizationRef] = UNSET + + evaluation: OptionalNullable[RunEvaluationSummary] = UNSET + + project: OptionalNullable[RunProjectSummary] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "run_info", + "status", + "dataset_id", + "run_evaluators", + "system", + "statistics", + "goal_results", + "passed", + "run_scores", + "optimization", + "evaluation", + "project", + ] + ) + nullable_fields = set( + [ + "deleted_at", + "description", + "run_info", + "dataset_id", + "system", + "passed", + "optimization", + "evaluation", + "project", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m + + +try: + EvaluationRunV2WithRefsResponse.model_rebuild() +except NameError: + pass diff --git a/src/mistralai/client/models/evaluationsv2.py b/src/mistralai/client/models/evaluationsv2.py new file mode 100644 index 000000000..279164339 --- /dev/null +++ b/src/mistralai/client/models/evaluationsv2.py @@ -0,0 +1,17 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .paginatedresultevaluationv2 import ( + PaginatedResultEvaluationV2, + PaginatedResultEvaluationV2TypedDict, +) +from mistralai.client.types import BaseModel +from typing_extensions import TypedDict + + +class EvaluationsV2TypedDict(TypedDict): + evaluations: PaginatedResultEvaluationV2TypedDict + + +class EvaluationsV2(BaseModel): + evaluations: PaginatedResultEvaluationV2 diff --git a/src/mistralai/client/models/evaluationv2.py b/src/mistralai/client/models/evaluationv2.py new file mode 100644 index 000000000..7b7d7108f --- /dev/null +++ b/src/mistralai/client/models/evaluationv2.py @@ -0,0 +1,84 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from datetime import datetime +from mistralai.client.types import BaseModel, Nullable, UNSET_SENTINEL +import pydantic +from pydantic import model_serializer +from typing import Any, Dict, List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class EvaluationV2TypedDict(TypedDict): + id: str + created_at: datetime + updated_at: datetime + deleted_at: Nullable[datetime] + workspace_id: str + creator_id: str + project_id: str + name: str + slug: str + description: Nullable[str] + tags: List[str] + metadata: Dict[str, Any] + is_favorite: NotRequired[bool] + + +class EvaluationV2(BaseModel): + id: str + + created_at: datetime + + updated_at: datetime + + deleted_at: Nullable[datetime] + + workspace_id: str + + creator_id: str + + project_id: str + + name: str + + slug: str + + description: Nullable[str] + + tags: List[str] + + metadata: Annotated[Dict[str, Any], pydantic.Field(alias="metadata_")] + + is_favorite: Optional[bool] = False + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["is_favorite"]) + nullable_fields = set(["deleted_at", "description"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m + + +try: + EvaluationV2.model_rebuild() +except NameError: + pass diff --git a/src/mistralai/client/models/evaluatorstatistics.py b/src/mistralai/client/models/evaluatorstatistics.py new file mode 100644 index 000000000..2073fcf9f --- /dev/null +++ b/src/mistralai/client/models/evaluatorstatistics.py @@ -0,0 +1,24 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .categoricalstatistics import CategoricalStatistics, CategoricalStatisticsTypedDict +from .numericstatistics import NumericStatistics, NumericStatisticsTypedDict +from .unsupportedstatistics import UnsupportedStatistics, UnsupportedStatisticsTypedDict +from typing import Union +from typing_extensions import TypeAliasType + + +EvaluatorStatisticsTypedDict = TypeAliasType( + "EvaluatorStatisticsTypedDict", + Union[ + UnsupportedStatisticsTypedDict, + CategoricalStatisticsTypedDict, + NumericStatisticsTypedDict, + ], +) + + +EvaluatorStatistics = TypeAliasType( + "EvaluatorStatistics", + Union[UnsupportedStatistics, CategoricalStatistics, NumericStatistics], +) diff --git a/src/mistralai/client/models/evaluatorv2.py b/src/mistralai/client/models/evaluatorv2.py new file mode 100644 index 000000000..1e150d6bc --- /dev/null +++ b/src/mistralai/client/models/evaluatorv2.py @@ -0,0 +1,196 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .classificationstatisticspec import ( + ClassificationStatisticSpec, + ClassificationStatisticSpecTypedDict, +) +from .goalspec import GoalSpec, GoalSpecTypedDict +from .percentilestatisticspec import ( + PercentileStatisticSpec, + PercentileStatisticSpecTypedDict, +) +from .simplenumericstatisticspec import ( + SimpleNumericStatisticSpec, + SimpleNumericStatisticSpecTypedDict, +) +from datetime import datetime +from functools import partial +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, + UnrecognizedStr, +) +from mistralai.client.utils.unions import parse_open_union +from pydantic import ConfigDict, model_serializer +from pydantic.functional_validators import BeforeValidator +from typing import Any, List, Literal, Optional, Union +from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict + + +StatisticTypedDict = TypeAliasType( + "StatisticTypedDict", + Union[ + SimpleNumericStatisticSpecTypedDict, + PercentileStatisticSpecTypedDict, + ClassificationStatisticSpecTypedDict, + ], +) + + +class UnknownStatistic(BaseModel): + r"""A Statistic variant the SDK doesn't recognize. Preserves the raw payload.""" + + kind: Literal["UNKNOWN"] = "UNKNOWN" + raw: Any + is_unknown: Literal[True] = True + + model_config = ConfigDict(frozen=True) + + +_STATISTIC_VARIANTS: dict[str, Any] = { + "avg": SimpleNumericStatisticSpec, + "count": SimpleNumericStatisticSpec, + "f1": ClassificationStatisticSpec, + "max": SimpleNumericStatisticSpec, + "min": SimpleNumericStatisticSpec, + "percentile": PercentileStatisticSpec, + "precision": ClassificationStatisticSpec, + "recall": ClassificationStatisticSpec, + "std": SimpleNumericStatisticSpec, + "sum": SimpleNumericStatisticSpec, +} + + +Statistic = Annotated[ + Union[ + SimpleNumericStatisticSpec, + SimpleNumericStatisticSpec, + ClassificationStatisticSpec, + SimpleNumericStatisticSpec, + SimpleNumericStatisticSpec, + PercentileStatisticSpec, + ClassificationStatisticSpec, + ClassificationStatisticSpec, + SimpleNumericStatisticSpec, + SimpleNumericStatisticSpec, + UnknownStatistic, + ], + BeforeValidator( + partial( + parse_open_union, + disc_key="kind", + variants=_STATISTIC_VARIANTS, + unknown_cls=UnknownStatistic, + union_name="Statistic", + ) + ), +] + + +EvaluatorV2Direction = Union[ + Literal[ + "maximize", + "minimize", + ], + UnrecognizedStr, +] + + +class EvaluatorV2TypedDict(TypedDict): + id: str + created_at: datetime + updated_at: datetime + deleted_at: Nullable[datetime] + name: str + description: Nullable[str] + tags: List[str] + num_scores: int + goal: NotRequired[Nullable[GoalSpecTypedDict]] + aggregate_goal: NotRequired[Nullable[GoalSpecTypedDict]] + statistics: NotRequired[Nullable[List[StatisticTypedDict]]] + weight: NotRequired[float] + direction: NotRequired[Nullable[EvaluatorV2Direction]] + min_value: NotRequired[Nullable[float]] + max_value: NotRequired[Nullable[float]] + + +class EvaluatorV2(BaseModel): + id: str + + created_at: datetime + + updated_at: datetime + + deleted_at: Nullable[datetime] + + name: str + + description: Nullable[str] + + tags: List[str] + + num_scores: int + + goal: OptionalNullable[GoalSpec] = UNSET + + aggregate_goal: OptionalNullable[GoalSpec] = UNSET + + statistics: OptionalNullable[List[Statistic]] = UNSET + + weight: Optional[float] = 1 + + direction: OptionalNullable[EvaluatorV2Direction] = UNSET + + min_value: OptionalNullable[float] = UNSET + + max_value: OptionalNullable[float] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "goal", + "aggregate_goal", + "statistics", + "weight", + "direction", + "min_value", + "max_value", + ] + ) + nullable_fields = set( + [ + "deleted_at", + "description", + "goal", + "aggregate_goal", + "statistics", + "direction", + "min_value", + "max_value", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/export_dataset_to_jsonl_v1_observability_datasets_dataset_id_exports_to_jsonl_getop.py b/src/mistralai/client/models/export_dataset_to_jsonl_v1_observability_datasets_dataset_id_exports_to_jsonl_getop.py index 6da73b371..07759f483 100644 --- a/src/mistralai/client/models/export_dataset_to_jsonl_v1_observability_datasets_dataset_id_exports_to_jsonl_getop.py +++ b/src/mistralai/client/models/export_dataset_to_jsonl_v1_observability_datasets_dataset_id_exports_to_jsonl_getop.py @@ -10,6 +10,7 @@ class ExportDatasetToJsonlV1ObservabilityDatasetsDatasetIDExportsToJsonlGetReque TypedDict ): dataset_id: str + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" class ExportDatasetToJsonlV1ObservabilityDatasetsDatasetIDExportsToJsonlGetRequest( @@ -18,3 +19,4 @@ class ExportDatasetToJsonlV1ObservabilityDatasetsDatasetIDExportsToJsonlGetReque dataset_id: Annotated[ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) ] + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" diff --git a/src/mistralai/client/models/fieldsortinput.py b/src/mistralai/client/models/fieldsortinput.py new file mode 100644 index 000000000..a3ee82355 --- /dev/null +++ b/src/mistralai/client/models/fieldsortinput.py @@ -0,0 +1,51 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .recordsortfield import RecordSortField +from .sortdirection import SortDirection +from mistralai.client.types import BaseModel, UNSET_SENTINEL +from mistralai.client.utils import validate_const +import pydantic +from pydantic import model_serializer +from pydantic.functional_validators import AfterValidator +from typing import Literal, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class FieldSortInputTypedDict(TypedDict): + field: RecordSortField + kind: Literal["field"] + direction: NotRequired[SortDirection] + + +class FieldSortInput(BaseModel): + field: RecordSortField + + kind: Annotated[ + Annotated[Literal["field"], AfterValidator(validate_const("field"))], + pydantic.Field(alias="kind"), + ] = "field" + + direction: Optional[SortDirection] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["direction"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + +try: + FieldSortInput.model_rebuild() +except NameError: + pass diff --git a/src/mistralai/client/models/filepurpose.py b/src/mistralai/client/models/filepurpose.py index eef1b0899..f28b9a2b6 100644 --- a/src/mistralai/client/models/filepurpose.py +++ b/src/mistralai/client/models/filepurpose.py @@ -10,6 +10,7 @@ "fine-tune", "batch", "ocr", + "agentic_safety", ], UnrecognizedStr, ] diff --git a/src/mistralai/client/models/authdirection.py b/src/mistralai/client/models/filtercombinator.py similarity index 71% rename from src/mistralai/client/models/authdirection.py rename to src/mistralai/client/models/filtercombinator.py index 666b7b55d..5b73f6df9 100644 --- a/src/mistralai/client/models/authdirection.py +++ b/src/mistralai/client/models/filtercombinator.py @@ -4,7 +4,7 @@ from typing import Literal -AuthDirection = Literal[ - "inbound", - "outbound", +FilterCombinator = Literal[ + "and", + "or", ] diff --git a/src/mistralai/client/models/get_dataset_by_id_v1_observability_datasets_dataset_id_getop.py b/src/mistralai/client/models/get_dataset_by_id_v1_observability_datasets_dataset_id_getop.py index ec90cd8a7..0c25bc0b5 100644 --- a/src/mistralai/client/models/get_dataset_by_id_v1_observability_datasets_dataset_id_getop.py +++ b/src/mistralai/client/models/get_dataset_by_id_v1_observability_datasets_dataset_id_getop.py @@ -8,9 +8,11 @@ class GetDatasetByIDV1ObservabilityDatasetsDatasetIDGetRequestTypedDict(TypedDict): dataset_id: str + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" class GetDatasetByIDV1ObservabilityDatasetsDatasetIDGetRequest(BaseModel): dataset_id: Annotated[ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) ] + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" diff --git a/src/mistralai/client/models/get_dataset_import_task_v1_observability_datasets_dataset_id_tasks_task_id_getop.py b/src/mistralai/client/models/get_dataset_import_task_v1_observability_datasets_dataset_id_tasks_task_id_getop.py index cf9ac0e26..0a1d1d855 100644 --- a/src/mistralai/client/models/get_dataset_import_task_v1_observability_datasets_dataset_id_tasks_task_id_getop.py +++ b/src/mistralai/client/models/get_dataset_import_task_v1_observability_datasets_dataset_id_tasks_task_id_getop.py @@ -10,6 +10,7 @@ class GetDatasetImportTaskV1ObservabilityDatasetsDatasetIDTasksTaskIDGetRequestT TypedDict ): dataset_id: str + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" task_id: str @@ -19,6 +20,7 @@ class GetDatasetImportTaskV1ObservabilityDatasetsDatasetIDTasksTaskIDGetRequest( dataset_id: Annotated[ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) ] + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" task_id: Annotated[ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) diff --git a/src/mistralai/client/models/get_dataset_import_tasks_v1_observability_datasets_dataset_id_tasks_getop.py b/src/mistralai/client/models/get_dataset_import_tasks_v1_observability_datasets_dataset_id_tasks_getop.py index a47e64414..7e5e2113e 100644 --- a/src/mistralai/client/models/get_dataset_import_tasks_v1_observability_datasets_dataset_id_tasks_getop.py +++ b/src/mistralai/client/models/get_dataset_import_tasks_v1_observability_datasets_dataset_id_tasks_getop.py @@ -12,6 +12,7 @@ class GetDatasetImportTasksV1ObservabilityDatasetsDatasetIDTasksGetRequestTypedD TypedDict ): dataset_id: str + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" page_size: NotRequired[int] page: NotRequired[int] @@ -20,6 +21,7 @@ class GetDatasetImportTasksV1ObservabilityDatasetsDatasetIDTasksGetRequest(BaseM dataset_id: Annotated[ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) ] + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" page_size: Annotated[ Optional[int], diff --git a/src/mistralai/client/models/get_dataset_records_v1_observability_datasets_dataset_id_records_getop.py b/src/mistralai/client/models/get_dataset_records_v1_observability_datasets_dataset_id_records_getop.py index c6a0514f6..ce051f76a 100644 --- a/src/mistralai/client/models/get_dataset_records_v1_observability_datasets_dataset_id_records_getop.py +++ b/src/mistralai/client/models/get_dataset_records_v1_observability_datasets_dataset_id_records_getop.py @@ -12,6 +12,7 @@ class GetDatasetRecordsV1ObservabilityDatasetsDatasetIDRecordsGetRequestTypedDic TypedDict ): dataset_id: str + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" page_size: NotRequired[int] page: NotRequired[int] @@ -20,6 +21,7 @@ class GetDatasetRecordsV1ObservabilityDatasetsDatasetIDRecordsGetRequest(BaseMod dataset_id: Annotated[ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) ] + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" page_size: Annotated[ Optional[int], diff --git a/src/mistralai/client/models/get_evaluation_run_record_v2_v1_observability_evaluation_runs_v2_run_id_records_record_id_getop.py b/src/mistralai/client/models/get_evaluation_run_record_v2_v1_observability_evaluation_runs_v2_run_id_records_record_id_getop.py new file mode 100644 index 000000000..0f8bbff75 --- /dev/null +++ b/src/mistralai/client/models/get_evaluation_run_record_v2_v1_observability_evaluation_runs_v2_run_id_records_record_id_getop.py @@ -0,0 +1,25 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import BaseModel +from mistralai.client.utils import FieldMetadata, PathParamMetadata +from typing_extensions import Annotated, TypedDict + + +class GetEvaluationRunRecordV2V1ObservabilityEvaluationRunsV2RunIDRecordsRecordIDGetRequestTypedDict( + TypedDict +): + run_id: str + record_id: str + + +class GetEvaluationRunRecordV2V1ObservabilityEvaluationRunsV2RunIDRecordsRecordIDGetRequest( + BaseModel +): + run_id: Annotated[ + str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) + ] + + record_id: Annotated[ + str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) + ] diff --git a/src/mistralai/client/models/get_evaluation_run_v2_v1_observability_evaluation_runs_v2_run_id_getop.py b/src/mistralai/client/models/get_evaluation_run_v2_v1_observability_evaluation_runs_v2_run_id_getop.py new file mode 100644 index 000000000..f522cd688 --- /dev/null +++ b/src/mistralai/client/models/get_evaluation_run_v2_v1_observability_evaluation_runs_v2_run_id_getop.py @@ -0,0 +1,18 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import BaseModel +from mistralai.client.utils import FieldMetadata, PathParamMetadata +from typing_extensions import Annotated, TypedDict + + +class GetEvaluationRunV2V1ObservabilityEvaluationRunsV2RunIDGetRequestTypedDict( + TypedDict +): + run_id: str + + +class GetEvaluationRunV2V1ObservabilityEvaluationRunsV2RunIDGetRequest(BaseModel): + run_id: Annotated[ + str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) + ] diff --git a/src/mistralai/client/models/get_evaluation_v2_v1_observability_evaluations_v2_evaluation_slug_getop.py b/src/mistralai/client/models/get_evaluation_v2_v1_observability_evaluations_v2_evaluation_slug_getop.py new file mode 100644 index 000000000..d4ba44794 --- /dev/null +++ b/src/mistralai/client/models/get_evaluation_v2_v1_observability_evaluations_v2_evaluation_slug_getop.py @@ -0,0 +1,18 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import BaseModel +from mistralai.client.utils import FieldMetadata, PathParamMetadata +from typing_extensions import Annotated, TypedDict + + +class GetEvaluationV2V1ObservabilityEvaluationsV2EvaluationSlugGetRequestTypedDict( + TypedDict +): + evaluation_slug: str + + +class GetEvaluationV2V1ObservabilityEvaluationsV2EvaluationSlugGetRequest(BaseModel): + evaluation_slug: Annotated[ + str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) + ] diff --git a/src/mistralai/client/models/get_optimization_v1_observability_optimizations_optimization_id_getop.py b/src/mistralai/client/models/get_optimization_v1_observability_optimizations_optimization_id_getop.py new file mode 100644 index 000000000..d5d177f5f --- /dev/null +++ b/src/mistralai/client/models/get_optimization_v1_observability_optimizations_optimization_id_getop.py @@ -0,0 +1,18 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import BaseModel +from mistralai.client.utils import FieldMetadata, PathParamMetadata +from typing_extensions import Annotated, TypedDict + + +class GetOptimizationV1ObservabilityOptimizationsOptimizationIDGetRequestTypedDict( + TypedDict +): + optimization_id: str + + +class GetOptimizationV1ObservabilityOptimizationsOptimizationIDGetRequest(BaseModel): + optimization_id: Annotated[ + str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) + ] diff --git a/src/mistralai/client/models/get_project_evaluations_v2_v1_observability_projects_project_slug_evaluations_v2_getop.py b/src/mistralai/client/models/get_project_evaluations_v2_v1_observability_projects_project_slug_evaluations_v2_getop.py new file mode 100644 index 000000000..9e590ec16 --- /dev/null +++ b/src/mistralai/client/models/get_project_evaluations_v2_v1_observability_projects_project_slug_evaluations_v2_getop.py @@ -0,0 +1,50 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import BaseModel, UNSET_SENTINEL +from mistralai.client.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata +from pydantic import model_serializer +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class GetProjectEvaluationsV2V1ObservabilityProjectsProjectSlugEvaluationsV2GetRequestTypedDict( + TypedDict +): + project_slug: str + page_size: NotRequired[int] + page: NotRequired[int] + + +class GetProjectEvaluationsV2V1ObservabilityProjectsProjectSlugEvaluationsV2GetRequest( + BaseModel +): + project_slug: Annotated[ + str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) + ] + + page_size: Annotated[ + Optional[int], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = 50 + + page: Annotated[ + Optional[int], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = 1 + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["page_size", "page"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/mistralai/client/models/get_project_v1_observability_projects_project_slug_getop.py b/src/mistralai/client/models/get_project_v1_observability_projects_project_slug_getop.py new file mode 100644 index 000000000..37262da4e --- /dev/null +++ b/src/mistralai/client/models/get_project_v1_observability_projects_project_slug_getop.py @@ -0,0 +1,16 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import BaseModel +from mistralai.client.utils import FieldMetadata, PathParamMetadata +from typing_extensions import Annotated, TypedDict + + +class GetProjectV1ObservabilityProjectsProjectSlugGetRequestTypedDict(TypedDict): + project_slug: str + + +class GetProjectV1ObservabilityProjectsProjectSlugGetRequest(BaseModel): + project_slug: Annotated[ + str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) + ] diff --git a/src/mistralai/client/models/get_projects_v1_observability_projects_getop.py b/src/mistralai/client/models/get_projects_v1_observability_projects_getop.py new file mode 100644 index 000000000..c66273abf --- /dev/null +++ b/src/mistralai/client/models/get_projects_v1_observability_projects_getop.py @@ -0,0 +1,64 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from mistralai.client.utils import FieldMetadata, QueryParamMetadata +from pydantic import model_serializer +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class GetProjectsV1ObservabilityProjectsGetRequestTypedDict(TypedDict): + q: NotRequired[Nullable[str]] + r"""Case-insensitive filter on project name/slug.""" + page_size: NotRequired[int] + page: NotRequired[int] + + +class GetProjectsV1ObservabilityProjectsGetRequest(BaseModel): + q: Annotated[ + OptionalNullable[str], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = UNSET + r"""Case-insensitive filter on project name/slug.""" + + page_size: Annotated[ + Optional[int], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = 50 + + page: Annotated[ + Optional[int], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = 1 + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["q", "page_size", "page"]) + nullable_fields = set(["q"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/get_single_evaluation_run_statistics_v2_v1_observability_evaluation_runs_v2_run_id_statistics_getop.py b/src/mistralai/client/models/get_single_evaluation_run_statistics_v2_v1_observability_evaluation_runs_v2_run_id_statistics_getop.py new file mode 100644 index 000000000..004f1f798 --- /dev/null +++ b/src/mistralai/client/models/get_single_evaluation_run_statistics_v2_v1_observability_evaluation_runs_v2_run_id_statistics_getop.py @@ -0,0 +1,20 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import BaseModel +from mistralai.client.utils import FieldMetadata, PathParamMetadata +from typing_extensions import Annotated, TypedDict + + +class GetSingleEvaluationRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsGetRequestTypedDict( + TypedDict +): + run_id: str + + +class GetSingleEvaluationRunStatisticsV2V1ObservabilityEvaluationRunsV2RunIDStatisticsGetRequest( + BaseModel +): + run_id: Annotated[ + str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) + ] diff --git a/src/mistralai/client/models/get_workflow_registrations_v1_workflows_registrations_getop.py b/src/mistralai/client/models/get_workflow_registrations_v1_workflows_registrations_getop.py index 0dc8679c9..6f6ac67b2 100644 --- a/src/mistralai/client/models/get_workflow_registrations_v1_workflows_registrations_getop.py +++ b/src/mistralai/client/models/get_workflow_registrations_v1_workflows_registrations_getop.py @@ -23,6 +23,8 @@ class GetWorkflowRegistrationsV1WorkflowsRegistrationsGetRequestTypedDict(TypedD r"""Whether to only return active workflows versions""" include_shared: NotRequired[bool] r"""Whether to include shared workflow versions""" + workflow_name: NotRequired[Nullable[str]] + r"""Exact workflow name to filter by""" workflow_search: NotRequired[Nullable[str]] r"""The workflow name to filter by""" archived: NotRequired[Nullable[bool]] @@ -62,6 +64,12 @@ class GetWorkflowRegistrationsV1WorkflowsRegistrationsGetRequest(BaseModel): ] = True r"""Whether to include shared workflow versions""" + workflow_name: Annotated[ + OptionalNullable[str], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = UNSET + r"""Exact workflow name to filter by""" + workflow_search: Annotated[ OptionalNullable[str], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), @@ -106,6 +114,7 @@ def serialize_model(self, handler): "task_queue", "active_only", "include_shared", + "workflow_name", "workflow_search", "archived", "with_workflow", @@ -118,6 +127,7 @@ def serialize_model(self, handler): [ "workflow_id", "task_queue", + "workflow_name", "workflow_search", "archived", "available_in_chat_assistant", diff --git a/src/mistralai/client/models/goalresult.py b/src/mistralai/client/models/goalresult.py new file mode 100644 index 000000000..315714a0a --- /dev/null +++ b/src/mistralai/client/models/goalresult.py @@ -0,0 +1,33 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .goalresultitem import GoalResultItem, GoalResultItemTypedDict +from mistralai.client.types import BaseModel, Nullable, UNSET_SENTINEL +from pydantic import model_serializer +from typing import List +from typing_extensions import TypedDict + + +class GoalResultTypedDict(TypedDict): + passed: Nullable[bool] + results: List[GoalResultItemTypedDict] + + +class GoalResult(BaseModel): + passed: Nullable[bool] + + results: List[GoalResultItem] + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + m[k] = val + + return m diff --git a/src/mistralai/client/models/goalresultitem.py b/src/mistralai/client/models/goalresultitem.py new file mode 100644 index 000000000..d806a46c3 --- /dev/null +++ b/src/mistralai/client/models/goalresultitem.py @@ -0,0 +1,77 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, + UnrecognizedStr, +) +from pydantic import model_serializer +from typing import Literal, Union +from typing_extensions import NotRequired, TypedDict + + +GoalResultItemDirection = Union[ + Literal[ + "higher_is_better", + "lower_is_better", + ], + UnrecognizedStr, +] + + +class GoalResultItemTypedDict(TypedDict): + metric: str + operator: str + actual: float + passed: bool + target: NotRequired[Nullable[float]] + target_min: NotRequired[Nullable[float]] + target_max: NotRequired[Nullable[float]] + direction: NotRequired[Nullable[GoalResultItemDirection]] + + +class GoalResultItem(BaseModel): + metric: str + + operator: str + + actual: float + + passed: bool + + target: OptionalNullable[float] = UNSET + + target_min: OptionalNullable[float] = UNSET + + target_max: OptionalNullable[float] = UNSET + + direction: OptionalNullable[GoalResultItemDirection] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["target", "target_min", "target_max", "direction"]) + nullable_fields = set(["target", "target_min", "target_max", "direction"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/goalspec.py b/src/mistralai/client/models/goalspec.py new file mode 100644 index 000000000..e97b06743 --- /dev/null +++ b/src/mistralai/client/models/goalspec.py @@ -0,0 +1,61 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import Any, List +from typing_extensions import NotRequired, TypedDict + + +class GoalSpecTypedDict(TypedDict): + operator: NotRequired[Nullable[str]] + value: NotRequired[Nullable[Any]] + min: NotRequired[Nullable[float]] + max: NotRequired[Nullable[float]] + values: NotRequired[Nullable[List[Any]]] + metric: NotRequired[Nullable[str]] + + +class GoalSpec(BaseModel): + operator: OptionalNullable[str] = UNSET + + value: OptionalNullable[Any] = UNSET + + min: OptionalNullable[float] = UNSET + + max: OptionalNullable[float] = UNSET + + values: OptionalNullable[List[Any]] = UNSET + + metric: OptionalNullable[str] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["operator", "value", "min", "max", "values", "metric"]) + nullable_fields = set(["operator", "value", "min", "max", "values", "metric"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/goalstatus.py b/src/mistralai/client/models/goalstatus.py new file mode 100644 index 000000000..32122f518 --- /dev/null +++ b/src/mistralai/client/models/goalstatus.py @@ -0,0 +1,11 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from typing import Literal + + +GoalStatus = Literal[ + "passed", + "failed", + "not_evaluated", +] diff --git a/src/mistralai/client/models/goalstatusfilter.py b/src/mistralai/client/models/goalstatusfilter.py new file mode 100644 index 000000000..ac8cb9d85 --- /dev/null +++ b/src/mistralai/client/models/goalstatusfilter.py @@ -0,0 +1,50 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .goalstatus import GoalStatus +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class GoalStatusFilterTypedDict(TypedDict): + values: List[GoalStatus] + evaluator_name: NotRequired[Nullable[str]] + + +class GoalStatusFilter(BaseModel): + values: List[GoalStatus] + + evaluator_name: OptionalNullable[str] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["evaluator_name"]) + nullable_fields = set(["evaluator_name"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/goalstatusfiltergroup.py b/src/mistralai/client/models/goalstatusfiltergroup.py new file mode 100644 index 000000000..5d3c963b7 --- /dev/null +++ b/src/mistralai/client/models/goalstatusfiltergroup.py @@ -0,0 +1,36 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .filtercombinator import FilterCombinator +from .goalstatusfilter import GoalStatusFilter, GoalStatusFilterTypedDict +from mistralai.client.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class GoalStatusFilterGroupTypedDict(TypedDict): + combinator: NotRequired[FilterCombinator] + filters: NotRequired[List[GoalStatusFilterTypedDict]] + + +class GoalStatusFilterGroup(BaseModel): + combinator: Optional[FilterCombinator] = None + + filters: Optional[List[GoalStatusFilter]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["combinator", "filters"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/mistralai/client/models/httpconnector.py b/src/mistralai/client/models/httpconnector.py index e1e45762a..4f723ad55 100644 --- a/src/mistralai/client/models/httpconnector.py +++ b/src/mistralai/client/models/httpconnector.py @@ -67,7 +67,6 @@ class HTTPConnectorTypedDict(TypedDict): mistral: NotRequired[bool] is_authenticated: NotRequired[Nullable[bool]] tools: NotRequired[Nullable[List[ConnectorToolTypedDict]]] - system_prompt_route: NotRequired[Nullable[str]] connection_config: NotRequired[Nullable[PublicConnectionConfigTypedDict]] execution_env: NotRequired[Nullable[PublicExecutionEnvTypedDict]] protocol: Literal["http"] @@ -125,8 +124,6 @@ class HTTPConnector(BaseModel): tools: OptionalNullable[List[ConnectorTool]] = UNSET - system_prompt_route: OptionalNullable[str] = UNSET - connection_config: OptionalNullable[PublicConnectionConfig] = UNSET execution_env: OptionalNullable[PublicExecutionEnv] = UNSET @@ -156,7 +153,6 @@ def serialize_model(self, handler): "mistral", "is_authenticated", "tools", - "system_prompt_route", "connection_config", "execution_env", ] @@ -177,7 +173,6 @@ def serialize_model(self, handler): "active", "is_authenticated", "tools", - "system_prompt_route", "connection_config", "execution_env", ] diff --git a/src/mistralai/client/models/ipaphoneme.py b/src/mistralai/client/models/ipaphoneme.py new file mode 100644 index 000000000..368037138 --- /dev/null +++ b/src/mistralai/client/models/ipaphoneme.py @@ -0,0 +1,65 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from typing import Literal + + +IPAPhoneme = Literal[ + "a", + "aɪ", + "aʊ", + "b", + "d", + "dʒ", + "e", + "eɪ", + "f", + "g", + "h", + "i", + "j", + "k", + "l", + "m", + "n", + "o", + "oʊ", + "p", + "s", + "t", + "tʃ", + "u", + "v", + "w", + "z", + "æ", + "ð", + "ŋ", + "ɑ", + "ɔ", + "ɔɪ", + "ɖ", + "ə", + "ɚ", + "ɛ", + "ɜ", + "ɪ", + "ɱ", + "ɹ", + "ɾ", + "ʃ", + "ʈ", + "ʊ", + "ʋ", + "ʌ", + "ʒ", + "ʔ", + "θ", +] +r"""The IPA phone inventory usable in pronunciation hints. + +``StrEnum`` members' values are their (lowercase) names via ``auto()``, so each member IS +the IPA string it represents. Using an enum makes ``phoneme_hints`` values self-validating +at the API boundary (pydantic rejects any phone outside this set). **Append-only**: never +reorder or remove entries, only add new phones (e.g. for future languages) at the end. +""" diff --git a/src/mistralai/client/models/list_optimization_trials_v1_observability_optimizations_optimization_id_trials_getop.py b/src/mistralai/client/models/list_optimization_trials_v1_observability_optimizations_optimization_id_trials_getop.py new file mode 100644 index 000000000..18b37a526 --- /dev/null +++ b/src/mistralai/client/models/list_optimization_trials_v1_observability_optimizations_optimization_id_trials_getop.py @@ -0,0 +1,50 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import BaseModel, UNSET_SENTINEL +from mistralai.client.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata +from pydantic import model_serializer +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class ListOptimizationTrialsV1ObservabilityOptimizationsOptimizationIDTrialsGetRequestTypedDict( + TypedDict +): + optimization_id: str + page_size: NotRequired[int] + page: NotRequired[int] + + +class ListOptimizationTrialsV1ObservabilityOptimizationsOptimizationIDTrialsGetRequest( + BaseModel +): + optimization_id: Annotated[ + str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) + ] + + page_size: Annotated[ + Optional[int], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = 50 + + page: Annotated[ + Optional[int], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = 1 + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["page_size", "page"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/mistralai/client/models/list_optimizations_v1_observability_optimizations_getop.py b/src/mistralai/client/models/list_optimizations_v1_observability_optimizations_getop.py new file mode 100644 index 000000000..b6836f41d --- /dev/null +++ b/src/mistralai/client/models/list_optimizations_v1_observability_optimizations_getop.py @@ -0,0 +1,106 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from mistralai.client.utils import FieldMetadata, QueryParamMetadata +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class ListOptimizationsV1ObservabilityOptimizationsGetRequestTypedDict(TypedDict): + project: NotRequired[Nullable[str]] + r"""Filter by project slug""" + evaluation: NotRequired[Nullable[str]] + r"""Filter by evaluation slug""" + status: NotRequired[Nullable[str]] + r"""Filter by lifecycle status""" + algorithm: NotRequired[Nullable[str]] + r"""Filter by algorithm""" + tags: NotRequired[Nullable[List[str]]] + r"""Filter by tags""" + page_size: NotRequired[int] + page: NotRequired[int] + + +class ListOptimizationsV1ObservabilityOptimizationsGetRequest(BaseModel): + project: Annotated[ + OptionalNullable[str], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = UNSET + r"""Filter by project slug""" + + evaluation: Annotated[ + OptionalNullable[str], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = UNSET + r"""Filter by evaluation slug""" + + status: Annotated[ + OptionalNullable[str], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = UNSET + r"""Filter by lifecycle status""" + + algorithm: Annotated[ + OptionalNullable[str], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = UNSET + r"""Filter by algorithm""" + + tags: Annotated[ + OptionalNullable[List[str]], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = UNSET + r"""Filter by tags""" + + page_size: Annotated[ + Optional[int], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = 50 + + page: Annotated[ + Optional[int], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = 1 + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "project", + "evaluation", + "status", + "algorithm", + "tags", + "page_size", + "page", + ] + ) + nullable_fields = set(["project", "evaluation", "status", "algorithm", "tags"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/listevaluationrunrecordsresponse.py b/src/mistralai/client/models/listevaluationrunrecordsresponse.py new file mode 100644 index 000000000..1ae063712 --- /dev/null +++ b/src/mistralai/client/models/listevaluationrunrecordsresponse.py @@ -0,0 +1,17 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .paginatedresultevaluationrunrecordv2response import ( + PaginatedResultEvaluationRunRecordV2Response, + PaginatedResultEvaluationRunRecordV2ResponseTypedDict, +) +from mistralai.client.types import BaseModel +from typing_extensions import TypedDict + + +class ListEvaluationRunRecordsResponseTypedDict(TypedDict): + records: PaginatedResultEvaluationRunRecordV2ResponseTypedDict + + +class ListEvaluationRunRecordsResponse(BaseModel): + records: PaginatedResultEvaluationRunRecordV2Response diff --git a/src/mistralai/client/models/listevaluationrunsresponse.py b/src/mistralai/client/models/listevaluationrunsresponse.py new file mode 100644 index 000000000..0fac9d53d --- /dev/null +++ b/src/mistralai/client/models/listevaluationrunsresponse.py @@ -0,0 +1,17 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .paginatedresultevaluationrunv2response import ( + PaginatedResultEvaluationRunV2Response, + PaginatedResultEvaluationRunV2ResponseTypedDict, +) +from mistralai.client.types import BaseModel +from typing_extensions import TypedDict + + +class ListEvaluationRunsResponseTypedDict(TypedDict): + runs: PaginatedResultEvaluationRunV2ResponseTypedDict + + +class ListEvaluationRunsResponse(BaseModel): + runs: PaginatedResultEvaluationRunV2Response diff --git a/src/mistralai/client/models/listoptimizationsresponse.py b/src/mistralai/client/models/listoptimizationsresponse.py new file mode 100644 index 000000000..6d140e892 --- /dev/null +++ b/src/mistralai/client/models/listoptimizationsresponse.py @@ -0,0 +1,17 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .paginatedresultoptimization import ( + PaginatedResultOptimization, + PaginatedResultOptimizationTypedDict, +) +from mistralai.client.types import BaseModel +from typing_extensions import TypedDict + + +class ListOptimizationsResponseTypedDict(TypedDict): + optimizations: PaginatedResultOptimizationTypedDict + + +class ListOptimizationsResponse(BaseModel): + optimizations: PaginatedResultOptimization diff --git a/src/mistralai/client/models/listoptimizationtrialsresponse.py b/src/mistralai/client/models/listoptimizationtrialsresponse.py new file mode 100644 index 000000000..8584696f0 --- /dev/null +++ b/src/mistralai/client/models/listoptimizationtrialsresponse.py @@ -0,0 +1,17 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .paginatedresultoptimizationtrialwithobservations import ( + PaginatedResultOptimizationTrialWithObservations, + PaginatedResultOptimizationTrialWithObservationsTypedDict, +) +from mistralai.client.types import BaseModel +from typing_extensions import TypedDict + + +class ListOptimizationTrialsResponseTypedDict(TypedDict): + trials: PaginatedResultOptimizationTrialWithObservationsTypedDict + + +class ListOptimizationTrialsResponse(BaseModel): + trials: PaginatedResultOptimizationTrialWithObservations diff --git a/src/mistralai/client/models/mcpconnector.py b/src/mistralai/client/models/mcpconnector.py index 455baad7c..d8e2f646e 100644 --- a/src/mistralai/client/models/mcpconnector.py +++ b/src/mistralai/client/models/mcpconnector.py @@ -67,7 +67,6 @@ class MCPConnectorTypedDict(TypedDict): mistral: NotRequired[bool] is_authenticated: NotRequired[Nullable[bool]] tools: NotRequired[Nullable[List[ConnectorToolTypedDict]]] - system_prompt_route: NotRequired[Nullable[str]] connection_config: NotRequired[Nullable[PublicConnectionConfigTypedDict]] execution_env: NotRequired[Nullable[PublicExecutionEnvTypedDict]] protocol: Literal["mcp"] @@ -125,8 +124,6 @@ class MCPConnector(BaseModel): tools: OptionalNullable[List[ConnectorTool]] = UNSET - system_prompt_route: OptionalNullable[str] = UNSET - connection_config: OptionalNullable[PublicConnectionConfig] = UNSET execution_env: OptionalNullable[PublicExecutionEnv] = UNSET @@ -156,7 +153,6 @@ def serialize_model(self, handler): "mistral", "is_authenticated", "tools", - "system_prompt_route", "connection_config", "execution_env", ] @@ -177,7 +173,6 @@ def serialize_model(self, handler): "active", "is_authenticated", "tools", - "system_prompt_route", "connection_config", "execution_env", ] diff --git a/src/mistralai/client/models/metadatafilter.py b/src/mistralai/client/models/metadatafilter.py new file mode 100644 index 000000000..f9f28b3e3 --- /dev/null +++ b/src/mistralai/client/models/metadatafilter.py @@ -0,0 +1,29 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .systemparamoperator import SystemParamOperator +from mistralai.client.types import BaseModel +from typing import Union +from typing_extensions import TypeAliasType, TypedDict + + +MetadataFilterValueTypedDict = TypeAliasType( + "MetadataFilterValueTypedDict", Union[float, str, bool] +) + + +MetadataFilterValue = TypeAliasType("MetadataFilterValue", Union[float, str, bool]) + + +class MetadataFilterTypedDict(TypedDict): + key: str + operator: SystemParamOperator + value: MetadataFilterValueTypedDict + + +class MetadataFilter(BaseModel): + key: str + + operator: SystemParamOperator + + value: MetadataFilterValue diff --git a/src/mistralai/client/models/metadatafiltergroup.py b/src/mistralai/client/models/metadatafiltergroup.py new file mode 100644 index 000000000..c3c775112 --- /dev/null +++ b/src/mistralai/client/models/metadatafiltergroup.py @@ -0,0 +1,36 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .filtercombinator import FilterCombinator +from .metadatafilter import MetadataFilter, MetadataFilterTypedDict +from mistralai.client.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class MetadataFilterGroupTypedDict(TypedDict): + combinator: NotRequired[FilterCombinator] + filters: NotRequired[List[MetadataFilterTypedDict]] + + +class MetadataFilterGroup(BaseModel): + combinator: Optional[FilterCombinator] = None + + filters: Optional[List[MetadataFilter]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["combinator", "filters"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/mistralai/client/models/numericscoremetric.py b/src/mistralai/client/models/numericscoremetric.py new file mode 100644 index 000000000..0d707efa8 --- /dev/null +++ b/src/mistralai/client/models/numericscoremetric.py @@ -0,0 +1,12 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from typing import Literal + + +NumericScoreMetric = Literal[ + "avg", + "min", + "max", + "std", +] diff --git a/src/mistralai/client/models/numericstatistics.py b/src/mistralai/client/models/numericstatistics.py new file mode 100644 index 000000000..6402838a9 --- /dev/null +++ b/src/mistralai/client/models/numericstatistics.py @@ -0,0 +1,84 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .scalarstatisticvalue import ScalarStatisticValue, ScalarStatisticValueTypedDict +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from mistralai.client.utils import validate_const +import pydantic +from pydantic import model_serializer +from pydantic.functional_validators import AfterValidator +from typing import List, Literal, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class NumericStatisticsTypedDict(TypedDict): + type: Literal["numeric"] + values: NotRequired[Nullable[List[ScalarStatisticValueTypedDict]]] + sample_count: NotRequired[int] + avg: NotRequired[Nullable[float]] + min: NotRequired[Nullable[float]] + max: NotRequired[Nullable[float]] + std: NotRequired[Nullable[float]] + count: NotRequired[int] + + +class NumericStatistics(BaseModel): + type: Annotated[ + Annotated[ + Optional[Literal["numeric"]], AfterValidator(validate_const("numeric")) + ], + pydantic.Field(alias="type"), + ] = "numeric" + + values: OptionalNullable[List[ScalarStatisticValue]] = UNSET + + sample_count: Optional[int] = 0 + + avg: OptionalNullable[float] = UNSET + + min: OptionalNullable[float] = UNSET + + max: OptionalNullable[float] = UNSET + + std: OptionalNullable[float] = UNSET + + count: Optional[int] = 0 + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + ["type", "values", "sample_count", "avg", "min", "max", "std", "count"] + ) + nullable_fields = set(["values", "avg", "min", "max", "std"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m + + +try: + NumericStatistics.model_rebuild() +except NameError: + pass diff --git a/src/mistralai/client/models/oauth2authorizationcodeauthmethod.py b/src/mistralai/client/models/oauth2authorizationcodeauthmethod.py index 9d21a9cee..4b5f9795a 100644 --- a/src/mistralai/client/models/oauth2authorizationcodeauthmethod.py +++ b/src/mistralai/client/models/oauth2authorizationcodeauthmethod.py @@ -26,27 +26,16 @@ class OAuth2AuthorizationCodeAuthMethodTypedDict(TypedDict): - oauth2_server_metadata: ExtendedOAuthServerMetadataTypedDict - r"""Custom superset of RFC 8414 OAuth 2.0 Authorization Server Metadata. - - Stored at connector creation time (provided for HTTP connectors, discovered via .well-known for MCP). - Mirrors the shape of .well-known/oauth-authorization-server responses. - """ auth_data: AuthDataTypedDict method_type: Literal["oauth2"] headers: NotRequired[Nullable[List[ConnectorAuthenticationHeaderTypedDict]]] r"""Optional headers sent with requests for this auth method.""" grant_type: Literal["authorization_code"] + oauth2_server_metadata: NotRequired[Nullable[ExtendedOAuthServerMetadataTypedDict]] + r"""OAuth2 authorization server metadata (endpoints, scopes_supported, ...).""" class OAuth2AuthorizationCodeAuthMethod(BaseModel): - oauth2_server_metadata: ExtendedOAuthServerMetadata - r"""Custom superset of RFC 8414 OAuth 2.0 Authorization Server Metadata. - - Stored at connector creation time (provided for HTTP connectors, discovered via .well-known for MCP). - Mirrors the shape of .well-known/oauth-authorization-server responses. - """ - auth_data: AuthData method_type: Annotated[ @@ -67,10 +56,13 @@ class OAuth2AuthorizationCodeAuthMethod(BaseModel): pydantic.Field(alias="grant_type"), ] = "authorization_code" + oauth2_server_metadata: OptionalNullable[ExtendedOAuthServerMetadata] = UNSET + r"""OAuth2 authorization server metadata (endpoints, scopes_supported, ...).""" + @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = set(["method_type", "headers"]) - nullable_fields = set(["headers"]) + optional_fields = set(["method_type", "headers", "oauth2_server_metadata"]) + nullable_fields = set(["headers", "oauth2_server_metadata"]) serialized = handler(self) m = {} diff --git a/src/mistralai/client/models/oauth2clientcredentialsauthmethod.py b/src/mistralai/client/models/oauth2clientcredentialsauthmethod.py index be97fa142..160452ee4 100644 --- a/src/mistralai/client/models/oauth2clientcredentialsauthmethod.py +++ b/src/mistralai/client/models/oauth2clientcredentialsauthmethod.py @@ -26,13 +26,13 @@ class OAuth2ClientCredentialsAuthMethodTypedDict(TypedDict): + token_endpoint_auth_method: OAuth2TokenEndpointAuthMethod oauth2_server_metadata: ExtendedOAuthServerMetadataTypedDict r"""Custom superset of RFC 8414 OAuth 2.0 Authorization Server Metadata. Stored at connector creation time (provided for HTTP connectors, discovered via .well-known for MCP). Mirrors the shape of .well-known/oauth-authorization-server responses. """ - token_endpoint_auth_method: OAuth2TokenEndpointAuthMethod method_type: Literal["oauth2"] headers: NotRequired[Nullable[List[ConnectorAuthenticationHeaderTypedDict]]] r"""Optional headers sent with requests for this auth method.""" @@ -40,6 +40,8 @@ class OAuth2ClientCredentialsAuthMethodTypedDict(TypedDict): class OAuth2ClientCredentialsAuthMethod(BaseModel): + token_endpoint_auth_method: OAuth2TokenEndpointAuthMethod + oauth2_server_metadata: ExtendedOAuthServerMetadata r"""Custom superset of RFC 8414 OAuth 2.0 Authorization Server Metadata. @@ -47,8 +49,6 @@ class OAuth2ClientCredentialsAuthMethod(BaseModel): Mirrors the shape of .well-known/oauth-authorization-server responses. """ - token_endpoint_auth_method: OAuth2TokenEndpointAuthMethod - method_type: Annotated[ Annotated[ Optional[Literal["oauth2"]], AfterValidator(validate_const("oauth2")) diff --git a/src/mistralai/client/models/observabilityerrorcode.py b/src/mistralai/client/models/observabilityerrorcode.py index 14f1f52db..8f3bf3e8f 100644 --- a/src/mistralai/client/models/observabilityerrorcode.py +++ b/src/mistralai/client/models/observabilityerrorcode.py @@ -44,6 +44,7 @@ "EVALUATION_RUN_OUTPUT_RECORD_CONFLICT", "TEMPLATE_ERROR", "TEMPLATE_SYNTAX_ERROR", + "PROJECT_NOT_FOUND", "PROJECT_NAME_ALREADY_EXISTS", "PIPELINE_CONFIG_NOT_FOUND", "PIPELINE_CONFIG_ALREADY_EXISTS", @@ -53,6 +54,7 @@ "SCORER_ALREADY_EXISTS", "SCORER_CONFIG_KIND_MISMATCH", "EVALUATION_NAME_ALREADY_EXISTS", + "OPTIMIZATION_NOT_FOUND", "OPTIMIZATION_TRIAL_KEY_ALREADY_EXISTS", "TRACES_FILTER_QUERY_PARSE_ERROR", "TRACE_NOT_FOUND", diff --git a/src/mistralai/client/models/optimization.py b/src/mistralai/client/models/optimization.py new file mode 100644 index 000000000..ed4606e80 --- /dev/null +++ b/src/mistralai/client/models/optimization.py @@ -0,0 +1,120 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from datetime import datetime +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import Any, Dict, List, Optional +from typing_extensions import NotRequired, TypedDict + + +class OptimizationTypedDict(TypedDict): + id: str + created_at: datetime + updated_at: datetime + deleted_at: Nullable[datetime] + creator_id: str + project_id: str + name: str + algorithm: str + status: str + source: str + evaluation_id: NotRequired[Nullable[str]] + description: NotRequired[Nullable[str]] + steer: NotRequired[Nullable[str]] + tags: NotRequired[List[str]] + workflow_execution_id: NotRequired[Nullable[str]] + workflow_run_id: NotRequired[Nullable[str]] + objective_spec: NotRequired[Nullable[Dict[str, Any]]] + outcome: NotRequired[Nullable[Dict[str, Any]]] + + +class Optimization(BaseModel): + id: str + + created_at: datetime + + updated_at: datetime + + deleted_at: Nullable[datetime] + + creator_id: str + + project_id: str + + name: str + + algorithm: str + + status: str + + source: str + + evaluation_id: OptionalNullable[str] = UNSET + + description: OptionalNullable[str] = UNSET + + steer: OptionalNullable[str] = UNSET + + tags: Optional[List[str]] = None + + workflow_execution_id: OptionalNullable[str] = UNSET + + workflow_run_id: OptionalNullable[str] = UNSET + + objective_spec: OptionalNullable[Dict[str, Any]] = UNSET + + outcome: OptionalNullable[Dict[str, Any]] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "evaluation_id", + "description", + "steer", + "tags", + "workflow_execution_id", + "workflow_run_id", + "objective_spec", + "outcome", + ] + ) + nullable_fields = set( + [ + "deleted_at", + "evaluation_id", + "description", + "steer", + "workflow_execution_id", + "workflow_run_id", + "objective_spec", + "outcome", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/optimizationdetail.py b/src/mistralai/client/models/optimizationdetail.py new file mode 100644 index 000000000..06f534b57 --- /dev/null +++ b/src/mistralai/client/models/optimizationdetail.py @@ -0,0 +1,131 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .optimizationreference import OptimizationReference, OptimizationReferenceTypedDict +from datetime import datetime +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import Any, Dict, List, Optional +from typing_extensions import NotRequired, TypedDict + + +class OptimizationDetailTypedDict(TypedDict): + id: str + created_at: datetime + updated_at: datetime + deleted_at: Nullable[datetime] + creator_id: str + project_id: str + name: str + algorithm: str + status: str + source: str + evaluation_id: NotRequired[Nullable[str]] + description: NotRequired[Nullable[str]] + steer: NotRequired[Nullable[str]] + tags: NotRequired[List[str]] + workflow_execution_id: NotRequired[Nullable[str]] + workflow_run_id: NotRequired[Nullable[str]] + objective_spec: NotRequired[Nullable[Dict[str, Any]]] + outcome: NotRequired[Nullable[Dict[str, Any]]] + evaluation: NotRequired[Nullable[OptimizationReferenceTypedDict]] + project: NotRequired[Nullable[OptimizationReferenceTypedDict]] + + +class OptimizationDetail(BaseModel): + id: str + + created_at: datetime + + updated_at: datetime + + deleted_at: Nullable[datetime] + + creator_id: str + + project_id: str + + name: str + + algorithm: str + + status: str + + source: str + + evaluation_id: OptionalNullable[str] = UNSET + + description: OptionalNullable[str] = UNSET + + steer: OptionalNullable[str] = UNSET + + tags: Optional[List[str]] = None + + workflow_execution_id: OptionalNullable[str] = UNSET + + workflow_run_id: OptionalNullable[str] = UNSET + + objective_spec: OptionalNullable[Dict[str, Any]] = UNSET + + outcome: OptionalNullable[Dict[str, Any]] = UNSET + + evaluation: OptionalNullable[OptimizationReference] = UNSET + + project: OptionalNullable[OptimizationReference] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "evaluation_id", + "description", + "steer", + "tags", + "workflow_execution_id", + "workflow_run_id", + "objective_spec", + "outcome", + "evaluation", + "project", + ] + ) + nullable_fields = set( + [ + "deleted_at", + "evaluation_id", + "description", + "steer", + "workflow_execution_id", + "workflow_run_id", + "objective_spec", + "outcome", + "evaluation", + "project", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/optimizationreference.py b/src/mistralai/client/models/optimizationreference.py new file mode 100644 index 000000000..c5b0e35e4 --- /dev/null +++ b/src/mistralai/client/models/optimizationreference.py @@ -0,0 +1,19 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import BaseModel +from typing_extensions import TypedDict + + +class OptimizationReferenceTypedDict(TypedDict): + id: str + slug: str + name: str + + +class OptimizationReference(BaseModel): + id: str + + slug: str + + name: str diff --git a/src/mistralai/client/models/optimizationtrialobservation.py b/src/mistralai/client/models/optimizationtrialobservation.py new file mode 100644 index 000000000..015da8e63 --- /dev/null +++ b/src/mistralai/client/models/optimizationtrialobservation.py @@ -0,0 +1,59 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .evaluationrunv2response import ( + EvaluationRunV2Response, + EvaluationRunV2ResponseTypedDict, +) +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import Any, Dict, Optional +from typing_extensions import NotRequired, TypedDict + + +class OptimizationTrialObservationTypedDict(TypedDict): + run: EvaluationRunV2ResponseTypedDict + observation_type: NotRequired[Nullable[str]] + score: NotRequired[Nullable[float]] + metadata: NotRequired[Dict[str, Any]] + + +class OptimizationTrialObservation(BaseModel): + run: EvaluationRunV2Response + + observation_type: OptionalNullable[str] = UNSET + + score: OptionalNullable[float] = UNSET + + metadata: Optional[Dict[str, Any]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["observation_type", "score", "metadata"]) + nullable_fields = set(["observation_type", "score"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/optimizationtrialwithobservations.py b/src/mistralai/client/models/optimizationtrialwithobservations.py new file mode 100644 index 000000000..91060123d --- /dev/null +++ b/src/mistralai/client/models/optimizationtrialwithobservations.py @@ -0,0 +1,95 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .optimizationtrialobservation import ( + OptimizationTrialObservation, + OptimizationTrialObservationTypedDict, +) +from datetime import datetime +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +import pydantic +from pydantic import model_serializer +from typing import Any, Dict, List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class OptimizationTrialWithObservationsTypedDict(TypedDict): + id: str + created_at: datetime + updated_at: datetime + deleted_at: Nullable[datetime] + optimization_id: str + algorithm_trial_key: str + status: str + metadata: Dict[str, Any] + parent_trial_id: NotRequired[Nullable[str]] + hypothesis: NotRequired[Nullable[str]] + resolution: NotRequired[Nullable[str]] + observations: NotRequired[List[OptimizationTrialObservationTypedDict]] + + +class OptimizationTrialWithObservations(BaseModel): + id: str + + created_at: datetime + + updated_at: datetime + + deleted_at: Nullable[datetime] + + optimization_id: str + + algorithm_trial_key: str + + status: str + + metadata: Annotated[Dict[str, Any], pydantic.Field(alias="metadata_")] + + parent_trial_id: OptionalNullable[str] = UNSET + + hypothesis: OptionalNullable[str] = UNSET + + resolution: OptionalNullable[str] = UNSET + + observations: Optional[List[OptimizationTrialObservation]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + ["parent_trial_id", "hypothesis", "resolution", "observations"] + ) + nullable_fields = set( + ["deleted_at", "parent_trial_id", "hypothesis", "resolution"] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m + + +try: + OptimizationTrialWithObservations.model_rebuild() +except NameError: + pass diff --git a/src/mistralai/client/models/orderbyclause.py b/src/mistralai/client/models/orderbyclause.py index 3a1e3461c..05a136e5f 100644 --- a/src/mistralai/client/models/orderbyclause.py +++ b/src/mistralai/client/models/orderbyclause.py @@ -7,7 +7,7 @@ from typing_extensions import NotRequired, TypedDict -Direction = Literal[ +OrderByClauseDirection = Literal[ "asc", "desc", ] @@ -15,13 +15,13 @@ class OrderByClauseTypedDict(TypedDict): field: str - direction: NotRequired[Direction] + direction: NotRequired[OrderByClauseDirection] class OrderByClause(BaseModel): field: str - direction: Optional[Direction] = "asc" + direction: Optional[OrderByClauseDirection] = "asc" @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/mistralai/client/models/paginatedresultevaluationrunrecordv2response.py b/src/mistralai/client/models/paginatedresultevaluationrunrecordv2response.py new file mode 100644 index 000000000..0c0bf53bf --- /dev/null +++ b/src/mistralai/client/models/paginatedresultevaluationrunrecordv2response.py @@ -0,0 +1,59 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .evaluationrunrecordv2response import ( + EvaluationRunRecordV2Response, + EvaluationRunRecordV2ResponseTypedDict, +) +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class PaginatedResultEvaluationRunRecordV2ResponseTypedDict(TypedDict): + count: int + results: NotRequired[List[EvaluationRunRecordV2ResponseTypedDict]] + next: NotRequired[Nullable[str]] + previous: NotRequired[Nullable[str]] + + +class PaginatedResultEvaluationRunRecordV2Response(BaseModel): + count: int + + results: Optional[List[EvaluationRunRecordV2Response]] = None + + next: OptionalNullable[str] = UNSET + + previous: OptionalNullable[str] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["results", "next", "previous"]) + nullable_fields = set(["next", "previous"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/paginatedresultevaluationrunv2response.py b/src/mistralai/client/models/paginatedresultevaluationrunv2response.py new file mode 100644 index 000000000..24f7368ef --- /dev/null +++ b/src/mistralai/client/models/paginatedresultevaluationrunv2response.py @@ -0,0 +1,59 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .evaluationrunv2response import ( + EvaluationRunV2Response, + EvaluationRunV2ResponseTypedDict, +) +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class PaginatedResultEvaluationRunV2ResponseTypedDict(TypedDict): + count: int + results: NotRequired[List[EvaluationRunV2ResponseTypedDict]] + next: NotRequired[Nullable[str]] + previous: NotRequired[Nullable[str]] + + +class PaginatedResultEvaluationRunV2Response(BaseModel): + count: int + + results: Optional[List[EvaluationRunV2Response]] = None + + next: OptionalNullable[str] = UNSET + + previous: OptionalNullable[str] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["results", "next", "previous"]) + nullable_fields = set(["next", "previous"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/paginatedresultevaluationrunv2withrefsresponse.py b/src/mistralai/client/models/paginatedresultevaluationrunv2withrefsresponse.py new file mode 100644 index 000000000..67c996b3f --- /dev/null +++ b/src/mistralai/client/models/paginatedresultevaluationrunv2withrefsresponse.py @@ -0,0 +1,59 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .evaluationrunv2withrefsresponse import ( + EvaluationRunV2WithRefsResponse, + EvaluationRunV2WithRefsResponseTypedDict, +) +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class PaginatedResultEvaluationRunV2WithRefsResponseTypedDict(TypedDict): + count: int + results: NotRequired[List[EvaluationRunV2WithRefsResponseTypedDict]] + next: NotRequired[Nullable[str]] + previous: NotRequired[Nullable[str]] + + +class PaginatedResultEvaluationRunV2WithRefsResponse(BaseModel): + count: int + + results: Optional[List[EvaluationRunV2WithRefsResponse]] = None + + next: OptionalNullable[str] = UNSET + + previous: OptionalNullable[str] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["results", "next", "previous"]) + nullable_fields = set(["next", "previous"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/paginatedresultevaluationv2.py b/src/mistralai/client/models/paginatedresultevaluationv2.py new file mode 100644 index 000000000..c3376ca42 --- /dev/null +++ b/src/mistralai/client/models/paginatedresultevaluationv2.py @@ -0,0 +1,56 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .evaluationv2 import EvaluationV2, EvaluationV2TypedDict +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class PaginatedResultEvaluationV2TypedDict(TypedDict): + count: int + results: NotRequired[List[EvaluationV2TypedDict]] + next: NotRequired[Nullable[str]] + previous: NotRequired[Nullable[str]] + + +class PaginatedResultEvaluationV2(BaseModel): + count: int + + results: Optional[List[EvaluationV2]] = None + + next: OptionalNullable[str] = UNSET + + previous: OptionalNullable[str] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["results", "next", "previous"]) + nullable_fields = set(["next", "previous"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/paginatedresultoptimization.py b/src/mistralai/client/models/paginatedresultoptimization.py new file mode 100644 index 000000000..1c8b071f5 --- /dev/null +++ b/src/mistralai/client/models/paginatedresultoptimization.py @@ -0,0 +1,56 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .optimization import Optimization, OptimizationTypedDict +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class PaginatedResultOptimizationTypedDict(TypedDict): + count: int + results: NotRequired[List[OptimizationTypedDict]] + next: NotRequired[Nullable[str]] + previous: NotRequired[Nullable[str]] + + +class PaginatedResultOptimization(BaseModel): + count: int + + results: Optional[List[Optimization]] = None + + next: OptionalNullable[str] = UNSET + + previous: OptionalNullable[str] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["results", "next", "previous"]) + nullable_fields = set(["next", "previous"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/paginatedresultoptimizationtrialwithobservations.py b/src/mistralai/client/models/paginatedresultoptimizationtrialwithobservations.py new file mode 100644 index 000000000..2680008c7 --- /dev/null +++ b/src/mistralai/client/models/paginatedresultoptimizationtrialwithobservations.py @@ -0,0 +1,59 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .optimizationtrialwithobservations import ( + OptimizationTrialWithObservations, + OptimizationTrialWithObservationsTypedDict, +) +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class PaginatedResultOptimizationTrialWithObservationsTypedDict(TypedDict): + count: int + results: NotRequired[List[OptimizationTrialWithObservationsTypedDict]] + next: NotRequired[Nullable[str]] + previous: NotRequired[Nullable[str]] + + +class PaginatedResultOptimizationTrialWithObservations(BaseModel): + count: int + + results: Optional[List[OptimizationTrialWithObservations]] = None + + next: OptionalNullable[str] = UNSET + + previous: OptionalNullable[str] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["results", "next", "previous"]) + nullable_fields = set(["next", "previous"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/paginatedresultproject.py b/src/mistralai/client/models/paginatedresultproject.py new file mode 100644 index 000000000..70971fda8 --- /dev/null +++ b/src/mistralai/client/models/paginatedresultproject.py @@ -0,0 +1,56 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .project import Project, ProjectTypedDict +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class PaginatedResultProjectTypedDict(TypedDict): + count: int + results: NotRequired[List[ProjectTypedDict]] + next: NotRequired[Nullable[str]] + previous: NotRequired[Nullable[str]] + + +class PaginatedResultProject(BaseModel): + count: int + + results: Optional[List[Project]] = None + + next: OptionalNullable[str] = UNSET + + previous: OptionalNullable[str] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["results", "next", "previous"]) + nullable_fields = set(["next", "previous"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/percentilestatisticspec.py b/src/mistralai/client/models/percentilestatisticspec.py new file mode 100644 index 000000000..66976f919 --- /dev/null +++ b/src/mistralai/client/models/percentilestatisticspec.py @@ -0,0 +1,75 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .goalspec import GoalSpec, GoalSpecTypedDict +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from mistralai.client.utils import validate_const +import pydantic +from pydantic import model_serializer +from pydantic.functional_validators import AfterValidator +from typing import Literal, Union +from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict + + +PercentileTypedDict = TypeAliasType("PercentileTypedDict", Union[float, int]) + + +Percentile = TypeAliasType("Percentile", Union[float, int]) + + +class PercentileStatisticSpecTypedDict(TypedDict): + r"""The ``p``-th percentile (``0 <= p <= 100``), computed with the type-7 algorithm.""" + + percentile: PercentileTypedDict + kind: Literal["percentile"] + goal: NotRequired[Nullable[GoalSpecTypedDict]] + + +class PercentileStatisticSpec(BaseModel): + r"""The ``p``-th percentile (``0 <= p <= 100``), computed with the type-7 algorithm.""" + + percentile: Percentile + + kind: Annotated[ + Annotated[Literal["percentile"], AfterValidator(validate_const("percentile"))], + pydantic.Field(alias="kind"), + ] = "percentile" + + goal: OptionalNullable[GoalSpec] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["goal"]) + nullable_fields = set(["goal"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m + + +try: + PercentileStatisticSpec.model_rebuild() +except NameError: + pass diff --git a/src/mistralai/client/models/post_dataset_records_from_dataset_v1_observability_datasets_dataset_id_imports_from_dataset_postop.py b/src/mistralai/client/models/post_dataset_records_from_dataset_v1_observability_datasets_dataset_id_imports_from_dataset_postop.py index e962f7122..6e8132270 100644 --- a/src/mistralai/client/models/post_dataset_records_from_dataset_v1_observability_datasets_dataset_id_imports_from_dataset_postop.py +++ b/src/mistralai/client/models/post_dataset_records_from_dataset_v1_observability_datasets_dataset_id_imports_from_dataset_postop.py @@ -14,6 +14,7 @@ class PostDatasetRecordsFromDatasetV1ObservabilityDatasetsDatasetIDImportsFromDa TypedDict ): dataset_id: str + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" import_dataset_from_dataset_request: ImportDatasetFromDatasetRequestTypedDict @@ -23,6 +24,7 @@ class PostDatasetRecordsFromDatasetV1ObservabilityDatasetsDatasetIDImportsFromDa dataset_id: Annotated[ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) ] + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" import_dataset_from_dataset_request: Annotated[ ImportDatasetFromDatasetRequest, diff --git a/src/mistralai/client/models/post_dataset_records_from_file_v1_observability_datasets_dataset_id_imports_from_file_postop.py b/src/mistralai/client/models/post_dataset_records_from_file_v1_observability_datasets_dataset_id_imports_from_file_postop.py index bce82dfbc..2fd956b46 100644 --- a/src/mistralai/client/models/post_dataset_records_from_file_v1_observability_datasets_dataset_id_imports_from_file_postop.py +++ b/src/mistralai/client/models/post_dataset_records_from_file_v1_observability_datasets_dataset_id_imports_from_file_postop.py @@ -14,6 +14,7 @@ class PostDatasetRecordsFromFileV1ObservabilityDatasetsDatasetIDImportsFromFileP TypedDict ): dataset_id: str + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" import_dataset_from_file_request: ImportDatasetFromFileRequestTypedDict @@ -23,6 +24,7 @@ class PostDatasetRecordsFromFileV1ObservabilityDatasetsDatasetIDImportsFromFileP dataset_id: Annotated[ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) ] + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" import_dataset_from_file_request: Annotated[ ImportDatasetFromFileRequest, diff --git a/src/mistralai/client/models/post_dataset_records_from_playground_v1_observability_datasets_dataset_id_imports_from_playground_postop.py b/src/mistralai/client/models/post_dataset_records_from_playground_v1_observability_datasets_dataset_id_imports_from_playground_postop.py index 44961ec8b..0a58bbbf9 100644 --- a/src/mistralai/client/models/post_dataset_records_from_playground_v1_observability_datasets_dataset_id_imports_from_playground_postop.py +++ b/src/mistralai/client/models/post_dataset_records_from_playground_v1_observability_datasets_dataset_id_imports_from_playground_postop.py @@ -14,6 +14,7 @@ class PostDatasetRecordsFromPlaygroundV1ObservabilityDatasetsDatasetIDImportsFro TypedDict ): dataset_id: str + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" import_dataset_from_playground_request: ImportDatasetFromPlaygroundRequestTypedDict @@ -23,6 +24,7 @@ class PostDatasetRecordsFromPlaygroundV1ObservabilityDatasetsDatasetIDImportsFro dataset_id: Annotated[ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) ] + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" import_dataset_from_playground_request: Annotated[ ImportDatasetFromPlaygroundRequest, diff --git a/src/mistralai/client/models/post_dataset_records_from_spans_v1_observability_datasets_dataset_id_imports_from_spans_postop.py b/src/mistralai/client/models/post_dataset_records_from_spans_v1_observability_datasets_dataset_id_imports_from_spans_postop.py index d95c6c30b..0cee78842 100644 --- a/src/mistralai/client/models/post_dataset_records_from_spans_v1_observability_datasets_dataset_id_imports_from_spans_postop.py +++ b/src/mistralai/client/models/post_dataset_records_from_spans_v1_observability_datasets_dataset_id_imports_from_spans_postop.py @@ -14,6 +14,7 @@ class PostDatasetRecordsFromSpansV1ObservabilityDatasetsDatasetIDImportsFromSpan TypedDict ): dataset_id: str + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" import_dataset_from_spans_request: ImportDatasetFromSpansRequestTypedDict @@ -23,6 +24,7 @@ class PostDatasetRecordsFromSpansV1ObservabilityDatasetsDatasetIDImportsFromSpan dataset_id: Annotated[ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) ] + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" import_dataset_from_spans_request: Annotated[ ImportDatasetFromSpansRequest, diff --git a/src/mistralai/client/models/project.py b/src/mistralai/client/models/project.py new file mode 100644 index 000000000..77f370d83 --- /dev/null +++ b/src/mistralai/client/models/project.py @@ -0,0 +1,75 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .projectevaluationsummary import ( + ProjectEvaluationSummary, + ProjectEvaluationSummaryTypedDict, +) +from datetime import datetime +from mistralai.client.types import BaseModel, Nullable, UNSET_SENTINEL +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class ProjectTypedDict(TypedDict): + id: str + created_at: datetime + updated_at: datetime + deleted_at: Nullable[datetime] + workspace_id: str + creator_id: str + name: str + slug: str + description: Nullable[str] + is_favorite: NotRequired[bool] + evaluations: NotRequired[List[ProjectEvaluationSummaryTypedDict]] + + +class Project(BaseModel): + id: str + + created_at: datetime + + updated_at: datetime + + deleted_at: Nullable[datetime] + + workspace_id: str + + creator_id: str + + name: str + + slug: str + + description: Nullable[str] + + is_favorite: Optional[bool] = False + + evaluations: Optional[List[ProjectEvaluationSummary]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["is_favorite", "evaluations"]) + nullable_fields = set(["deleted_at", "description"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/projectevaluationsummary.py b/src/mistralai/client/models/projectevaluationsummary.py new file mode 100644 index 000000000..0a991bebb --- /dev/null +++ b/src/mistralai/client/models/projectevaluationsummary.py @@ -0,0 +1,27 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import BaseModel +from typing_extensions import TypedDict + + +class ProjectEvaluationSummaryTypedDict(TypedDict): + r"""A lightweight evaluation reference embedded in the projects listing, so the client can render a + project's evaluations without firing one request per project. + """ + + id: str + name: str + slug: str + + +class ProjectEvaluationSummary(BaseModel): + r"""A lightweight evaluation reference embedded in the projects listing, so the client can render a + project's evaluations without firing one request per project. + """ + + id: str + + name: str + + slug: str diff --git a/src/mistralai/client/models/projects.py b/src/mistralai/client/models/projects.py new file mode 100644 index 000000000..e01ca397f --- /dev/null +++ b/src/mistralai/client/models/projects.py @@ -0,0 +1,17 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .paginatedresultproject import ( + PaginatedResultProject, + PaginatedResultProjectTypedDict, +) +from mistralai.client.types import BaseModel +from typing_extensions import TypedDict + + +class ProjectsTypedDict(TypedDict): + projects: PaginatedResultProjectTypedDict + + +class Projects(BaseModel): + projects: PaginatedResultProject diff --git a/src/mistralai/client/models/publicauthenticationmethod.py b/src/mistralai/client/models/publicauthenticationmethod.py index 6fbde91f8..18b2b7914 100644 --- a/src/mistralai/client/models/publicauthenticationmethod.py +++ b/src/mistralai/client/models/publicauthenticationmethod.py @@ -1,6 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations +from .authenticationtype import AuthenticationType from .connectorauthenticationheader import ( ConnectorAuthenticationHeader, ConnectorAuthenticationHeaderTypedDict, @@ -11,7 +12,6 @@ ) from .globalheadervalue import GlobalHeaderValue, GlobalHeaderValueTypedDict from .oauth2granttype import OAuth2GrantType -from .outboundauthenticationtype import OutboundAuthenticationType from mistralai.client.types import ( BaseModel, Nullable, @@ -27,7 +27,7 @@ class PublicAuthenticationMethodTypedDict(TypedDict): r"""Public view of an authentication method, without secrets.""" - method_type: OutboundAuthenticationType + method_type: AuthenticationType has_default_credentials: bool headers: NotRequired[Nullable[List[ConnectorAuthenticationHeaderTypedDict]]] global_headers: NotRequired[Dict[str, GlobalHeaderValueTypedDict]] @@ -38,7 +38,7 @@ class PublicAuthenticationMethodTypedDict(TypedDict): class PublicAuthenticationMethod(BaseModel): r"""Public view of an authentication method, without secrets.""" - method_type: OutboundAuthenticationType + method_type: AuthenticationType has_default_credentials: bool diff --git a/src/mistralai/client/models/inboundauthenticationtype.py b/src/mistralai/client/models/recordsortfield.py similarity index 74% rename from src/mistralai/client/models/inboundauthenticationtype.py rename to src/mistralai/client/models/recordsortfield.py index bd7acb1c9..259603ff3 100644 --- a/src/mistralai/client/models/inboundauthenticationtype.py +++ b/src/mistralai/client/models/recordsortfield.py @@ -4,4 +4,4 @@ from typing import Literal -InboundAuthenticationType = Literal["webhook",] +RecordSortField = Literal["created_at",] diff --git a/src/mistralai/client/models/resourcechunk.py b/src/mistralai/client/models/resourcechunk.py new file mode 100644 index 000000000..0090adfa0 --- /dev/null +++ b/src/mistralai/client/models/resourcechunk.py @@ -0,0 +1,72 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .imageurlchunk import ImageURLChunk, ImageURLChunkTypedDict +from .textchunk import TextChunk, TextChunkTypedDict +from functools import partial +from mistralai.client.types import BaseModel +from mistralai.client.utils import validate_const +from mistralai.client.utils.unions import parse_open_union +import pydantic +from pydantic import ConfigDict +from pydantic.functional_validators import AfterValidator, BeforeValidator +from typing import Any, Literal, Union +from typing_extensions import Annotated, TypeAliasType, TypedDict + + +ResourceChunkContentTypedDict = TypeAliasType( + "ResourceChunkContentTypedDict", Union[TextChunkTypedDict, ImageURLChunkTypedDict] +) + + +class UnknownResourceChunkContent(BaseModel): + r"""A ResourceChunkContent variant the SDK doesn't recognize. Preserves the raw payload.""" + + type: Literal["UNKNOWN"] = "UNKNOWN" + raw: Any + is_unknown: Literal[True] = True + + model_config = ConfigDict(frozen=True) + + +_RESOURCE_CHUNK_CONTENT_VARIANTS: dict[str, Any] = { + "text": TextChunk, + "image_url": ImageURLChunk, +} + + +ResourceChunkContent = Annotated[ + Union[TextChunk, ImageURLChunk, UnknownResourceChunkContent], + BeforeValidator( + partial( + parse_open_union, + disc_key="type", + variants=_RESOURCE_CHUNK_CONTENT_VARIANTS, + unknown_cls=UnknownResourceChunkContent, + union_name="ResourceChunkContent", + ) + ), +] + + +class ResourceChunkTypedDict(TypedDict): + uri: str + content: ResourceChunkContentTypedDict + type: Literal["resource"] + + +class ResourceChunk(BaseModel): + uri: str + + content: ResourceChunkContent + + type: Annotated[ + Annotated[Literal["resource"], AfterValidator(validate_const("resource"))], + pydantic.Field(alias="type"), + ] = "resource" + + +try: + ResourceChunk.model_rebuild() +except NameError: + pass diff --git a/src/mistralai/client/models/resourcelinkchunk.py b/src/mistralai/client/models/resourcelinkchunk.py new file mode 100644 index 000000000..6cf77b491 --- /dev/null +++ b/src/mistralai/client/models/resourcelinkchunk.py @@ -0,0 +1,72 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from mistralai.client.utils import validate_const +import pydantic +from pydantic import model_serializer +from pydantic.functional_validators import AfterValidator +from typing import Dict, Literal, Union +from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict + + +MetadataTypedDict = TypeAliasType("MetadataTypedDict", Union[str, int, float, bool]) + + +Metadata = TypeAliasType("Metadata", Union[str, int, float, bool]) + + +class ResourceLinkChunkTypedDict(TypedDict): + uri: str + type: Literal["resource_link"] + metadata: NotRequired[Nullable[Dict[str, MetadataTypedDict]]] + + +class ResourceLinkChunk(BaseModel): + uri: str + + type: Annotated[ + Annotated[ + Literal["resource_link"], AfterValidator(validate_const("resource_link")) + ], + pydantic.Field(alias="type"), + ] = "resource_link" + + metadata: OptionalNullable[Dict[str, Metadata]] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["metadata"]) + nullable_fields = set(["metadata"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m + + +try: + ResourceLinkChunk.model_rebuild() +except NameError: + pass diff --git a/src/mistralai/client/models/runevaluationsummary.py b/src/mistralai/client/models/runevaluationsummary.py new file mode 100644 index 000000000..32f293dc7 --- /dev/null +++ b/src/mistralai/client/models/runevaluationsummary.py @@ -0,0 +1,19 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import BaseModel +from typing_extensions import TypedDict + + +class RunEvaluationSummaryTypedDict(TypedDict): + id: str + name: str + slug: str + + +class RunEvaluationSummary(BaseModel): + id: str + + name: str + + slug: str diff --git a/src/mistralai/client/models/runoptimizationref.py b/src/mistralai/client/models/runoptimizationref.py new file mode 100644 index 000000000..948f87c55 --- /dev/null +++ b/src/mistralai/client/models/runoptimizationref.py @@ -0,0 +1,28 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import BaseModel +from typing_extensions import TypedDict + + +class RunOptimizationRefTypedDict(TypedDict): + r"""Typed run→optimization back-ref, derived at read from the optimization_run link. + + Not stored on the run (single source of truth = optimization_run); lets a run row show + its optimization (id + name) without an extra request per run. + """ + + optimization_id: str + name: str + + +class RunOptimizationRef(BaseModel): + r"""Typed run→optimization back-ref, derived at read from the optimization_run link. + + Not stored on the run (single source of truth = optimization_run); lets a run row show + its optimization (id + name) without an extra request per run. + """ + + optimization_id: str + + name: str diff --git a/src/mistralai/client/models/runownershipfilter.py b/src/mistralai/client/models/runownershipfilter.py new file mode 100644 index 000000000..a607ff4dc --- /dev/null +++ b/src/mistralai/client/models/runownershipfilter.py @@ -0,0 +1,69 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .filtercombinator import FilterCombinator +from mistralai.client.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class RunOwnershipFilterTypedDict(TypedDict): + r"""OR-able group isolating the \"runs I care about\" default (created by me OR in my starred projects). + + Kept separate from the plain generic filters so it can OR internally while still AND-ing with + everything else. The UI drives it via two sugar chips: \"Created by me\" writes `creator_ids`, and + \"Starred projects\" sets `starred_by_me`. Dropping a chip clears its term and the OR collapses to the + remaining one; dropping both leaves the group empty (no ownership scoping). + + `starred_by_me` is resolved server-side against the caller's favorites, so the client never has to + page through projects to collect starred ids — and a caller with zero starred projects correctly + matches no runs (rather than falling through to the whole workspace). `project_ids` remains for + explicit, caller-supplied project scoping. + """ + + combinator: NotRequired[FilterCombinator] + creator_ids: NotRequired[List[str]] + project_ids: NotRequired[List[str]] + starred_by_me: NotRequired[bool] + + +class RunOwnershipFilter(BaseModel): + r"""OR-able group isolating the \"runs I care about\" default (created by me OR in my starred projects). + + Kept separate from the plain generic filters so it can OR internally while still AND-ing with + everything else. The UI drives it via two sugar chips: \"Created by me\" writes `creator_ids`, and + \"Starred projects\" sets `starred_by_me`. Dropping a chip clears its term and the OR collapses to the + remaining one; dropping both leaves the group empty (no ownership scoping). + + `starred_by_me` is resolved server-side against the caller's favorites, so the client never has to + page through projects to collect starred ids — and a caller with zero starred projects correctly + matches no runs (rather than falling through to the whole workspace). `project_ids` remains for + explicit, caller-supplied project scoping. + """ + + combinator: Optional[FilterCombinator] = None + + creator_ids: Optional[List[str]] = None + + project_ids: Optional[List[str]] = None + + starred_by_me: Optional[bool] = False + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + ["combinator", "creator_ids", "project_ids", "starred_by_me"] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/mistralai/client/models/runprojectsummary.py b/src/mistralai/client/models/runprojectsummary.py new file mode 100644 index 000000000..1e4849712 --- /dev/null +++ b/src/mistralai/client/models/runprojectsummary.py @@ -0,0 +1,19 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import BaseModel +from typing_extensions import TypedDict + + +class RunProjectSummaryTypedDict(TypedDict): + id: str + name: str + slug: str + + +class RunProjectSummary(BaseModel): + id: str + + name: str + + slug: str diff --git a/src/mistralai/client/models/runstatisticsresponse.py b/src/mistralai/client/models/runstatisticsresponse.py new file mode 100644 index 000000000..5e314cd86 --- /dev/null +++ b/src/mistralai/client/models/runstatisticsresponse.py @@ -0,0 +1,57 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .evaluatorstatistics import EvaluatorStatistics, EvaluatorStatisticsTypedDict +from .goalresult import GoalResult, GoalResultTypedDict +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import Dict, Optional +from typing_extensions import NotRequired, TypedDict + + +class RunStatisticsResponseTypedDict(TypedDict): + run_id: str + statistics: Dict[str, EvaluatorStatisticsTypedDict] + goal_results: NotRequired[Dict[str, GoalResultTypedDict]] + passed: NotRequired[Nullable[bool]] + + +class RunStatisticsResponse(BaseModel): + run_id: str + + statistics: Dict[str, EvaluatorStatistics] + + goal_results: Optional[Dict[str, GoalResult]] = None + + passed: OptionalNullable[bool] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["goal_results", "passed"]) + nullable_fields = set(["passed"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/scalarstatisticvalue.py b/src/mistralai/client/models/scalarstatisticvalue.py new file mode 100644 index 000000000..e746f852b --- /dev/null +++ b/src/mistralai/client/models/scalarstatisticvalue.py @@ -0,0 +1,84 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from mistralai.client.utils import validate_const +import pydantic +from pydantic import model_serializer +from pydantic.functional_validators import AfterValidator +from typing import Literal, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class ScalarStatisticValueTypedDict(TypedDict): + r"""A single scalar computed run-level statistic: its canonical id and numeric value. + + ``value`` is ``None`` when the statistic is not evaluable (e.g. a ``sum`` or percentile over an + empty numeric sample). A declared ``count`` is always evaluable and is ``0`` on an empty sample. + + The ``type`` discriminator lets future result shapes (e.g. a categorical ``categories`` or a + ``distribution``) join a union without overloading this model; consumers dispatch on ``type``. + """ + + id: str + type: Literal["scalar"] + value: NotRequired[Nullable[float]] + + +class ScalarStatisticValue(BaseModel): + r"""A single scalar computed run-level statistic: its canonical id and numeric value. + + ``value`` is ``None`` when the statistic is not evaluable (e.g. a ``sum`` or percentile over an + empty numeric sample). A declared ``count`` is always evaluable and is ``0`` on an empty sample. + + The ``type`` discriminator lets future result shapes (e.g. a categorical ``categories`` or a + ``distribution``) join a union without overloading this model; consumers dispatch on ``type``. + """ + + id: str + + type: Annotated[ + Annotated[ + Optional[Literal["scalar"]], AfterValidator(validate_const("scalar")) + ], + pydantic.Field(alias="type"), + ] = "scalar" + + value: OptionalNullable[float] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["type", "value"]) + nullable_fields = set(["value"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m + + +try: + ScalarStatisticValue.model_rebuild() +except NameError: + pass diff --git a/src/mistralai/client/models/scorefilter.py b/src/mistralai/client/models/scorefilter.py new file mode 100644 index 000000000..af9c8bd4f --- /dev/null +++ b/src/mistralai/client/models/scorefilter.py @@ -0,0 +1,32 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .scoreoperator import ScoreOperator +from mistralai.client.types import BaseModel +from typing import Union +from typing_extensions import TypeAliasType, TypedDict + + +ScoreFilterValueTypedDict = TypeAliasType( + "ScoreFilterValueTypedDict", Union[float, str] +) + + +ScoreFilterValue = TypeAliasType("ScoreFilterValue", Union[float, str]) + + +class ScoreFilterTypedDict(TypedDict): + evaluator_name: str + metric: str + operator: ScoreOperator + value: ScoreFilterValueTypedDict + + +class ScoreFilter(BaseModel): + evaluator_name: str + + metric: str + + operator: ScoreOperator + + value: ScoreFilterValue diff --git a/src/mistralai/client/models/scorefiltergroup.py b/src/mistralai/client/models/scorefiltergroup.py new file mode 100644 index 000000000..7be9378b9 --- /dev/null +++ b/src/mistralai/client/models/scorefiltergroup.py @@ -0,0 +1,36 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .filtercombinator import FilterCombinator +from .scorefilter import ScoreFilter, ScoreFilterTypedDict +from mistralai.client.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class ScoreFilterGroupTypedDict(TypedDict): + combinator: NotRequired[FilterCombinator] + filters: NotRequired[List[ScoreFilterTypedDict]] + + +class ScoreFilterGroup(BaseModel): + combinator: Optional[FilterCombinator] = None + + filters: Optional[List[ScoreFilter]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["combinator", "filters"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/mistralai/client/models/scoreoperator.py b/src/mistralai/client/models/scoreoperator.py new file mode 100644 index 000000000..364e25310 --- /dev/null +++ b/src/mistralai/client/models/scoreoperator.py @@ -0,0 +1,13 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from typing import Literal + + +ScoreOperator = Literal[ + "gt", + "gte", + "lt", + "lte", + "eq", +] diff --git a/src/mistralai/client/models/scoresortinput.py b/src/mistralai/client/models/scoresortinput.py new file mode 100644 index 000000000..6ae0db024 --- /dev/null +++ b/src/mistralai/client/models/scoresortinput.py @@ -0,0 +1,54 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .numericscoremetric import NumericScoreMetric +from .sortdirection import SortDirection +from mistralai.client.types import BaseModel, UNSET_SENTINEL +from mistralai.client.utils import validate_const +import pydantic +from pydantic import model_serializer +from pydantic.functional_validators import AfterValidator +from typing import Literal, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class ScoreSortInputTypedDict(TypedDict): + evaluator_name: str + kind: Literal["score"] + metric: NotRequired[NumericScoreMetric] + direction: NotRequired[SortDirection] + + +class ScoreSortInput(BaseModel): + evaluator_name: str + + kind: Annotated[ + Annotated[Literal["score"], AfterValidator(validate_const("score"))], + pydantic.Field(alias="kind"), + ] = "score" + + metric: Optional[NumericScoreMetric] = None + + direction: Optional[SortDirection] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["metric", "direction"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + +try: + ScoreSortInput.model_rebuild() +except NameError: + pass diff --git a/src/mistralai/client/models/search_all_evaluation_runs_v2_v1_observability_evaluation_runs_v2_search_postop.py b/src/mistralai/client/models/search_all_evaluation_runs_v2_v1_observability_evaluation_runs_v2_search_postop.py new file mode 100644 index 000000000..00e3076b3 --- /dev/null +++ b/src/mistralai/client/models/search_all_evaluation_runs_v2_v1_observability_evaluation_runs_v2_search_postop.py @@ -0,0 +1,72 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .evaluationrunfilterinput import ( + EvaluationRunFilterInput, + EvaluationRunFilterInputTypedDict, +) +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from mistralai.client.utils import FieldMetadata, QueryParamMetadata, RequestMetadata +from pydantic import model_serializer +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class SearchAllEvaluationRunsV2V1ObservabilityEvaluationRunsV2SearchPostRequestTypedDict( + TypedDict +): + page_size: NotRequired[int] + page: NotRequired[int] + evaluation_run_filter_input: NotRequired[ + Nullable[EvaluationRunFilterInputTypedDict] + ] + + +class SearchAllEvaluationRunsV2V1ObservabilityEvaluationRunsV2SearchPostRequest( + BaseModel +): + page_size: Annotated[ + Optional[int], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = 50 + + page: Annotated[ + Optional[int], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = 1 + + evaluation_run_filter_input: Annotated[ + OptionalNullable[EvaluationRunFilterInput], + FieldMetadata(request=RequestMetadata(media_type="application/json")), + ] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["page_size", "page", "EvaluationRunFilterInput"]) + nullable_fields = set(["EvaluationRunFilterInput"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/search_evaluation_run_records_v2_v1_observability_evaluation_runs_v2_run_id_records_search_postop.py b/src/mistralai/client/models/search_evaluation_run_records_v2_v1_observability_evaluation_runs_v2_run_id_records_search_postop.py new file mode 100644 index 000000000..36b0cd968 --- /dev/null +++ b/src/mistralai/client/models/search_evaluation_run_records_v2_v1_observability_evaluation_runs_v2_run_id_records_search_postop.py @@ -0,0 +1,82 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .evaluationrunrecordfilterinput import ( + EvaluationRunRecordFilterInput, + EvaluationRunRecordFilterInputTypedDict, +) +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from mistralai.client.utils import ( + FieldMetadata, + PathParamMetadata, + QueryParamMetadata, + RequestMetadata, +) +from pydantic import model_serializer +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class SearchEvaluationRunRecordsV2V1ObservabilityEvaluationRunsV2RunIDRecordsSearchPostRequestTypedDict( + TypedDict +): + run_id: str + page_size: NotRequired[int] + page: NotRequired[int] + evaluation_run_record_filter_input: NotRequired[ + Nullable[EvaluationRunRecordFilterInputTypedDict] + ] + + +class SearchEvaluationRunRecordsV2V1ObservabilityEvaluationRunsV2RunIDRecordsSearchPostRequest( + BaseModel +): + run_id: Annotated[ + str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) + ] + + page_size: Annotated[ + Optional[int], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = 50 + + page: Annotated[ + Optional[int], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = 1 + + evaluation_run_record_filter_input: Annotated[ + OptionalNullable[EvaluationRunRecordFilterInput], + FieldMetadata(request=RequestMetadata(media_type="application/json")), + ] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["page_size", "page", "EvaluationRunRecordFilterInput"]) + nullable_fields = set(["EvaluationRunRecordFilterInput"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/search_evaluation_runs_v2_v1_observability_evaluations_v2_evaluation_slug_runs_search_postop.py b/src/mistralai/client/models/search_evaluation_runs_v2_v1_observability_evaluations_v2_evaluation_slug_runs_search_postop.py new file mode 100644 index 000000000..6ce14644b --- /dev/null +++ b/src/mistralai/client/models/search_evaluation_runs_v2_v1_observability_evaluations_v2_evaluation_slug_runs_search_postop.py @@ -0,0 +1,82 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .evaluationrunfilterinput import ( + EvaluationRunFilterInput, + EvaluationRunFilterInputTypedDict, +) +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from mistralai.client.utils import ( + FieldMetadata, + PathParamMetadata, + QueryParamMetadata, + RequestMetadata, +) +from pydantic import model_serializer +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class SearchEvaluationRunsV2V1ObservabilityEvaluationsV2EvaluationSlugRunsSearchPostRequestTypedDict( + TypedDict +): + evaluation_slug: str + page_size: NotRequired[int] + page: NotRequired[int] + evaluation_run_filter_input: NotRequired[ + Nullable[EvaluationRunFilterInputTypedDict] + ] + + +class SearchEvaluationRunsV2V1ObservabilityEvaluationsV2EvaluationSlugRunsSearchPostRequest( + BaseModel +): + evaluation_slug: Annotated[ + str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) + ] + + page_size: Annotated[ + Optional[int], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = 50 + + page: Annotated[ + Optional[int], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = 1 + + evaluation_run_filter_input: Annotated[ + OptionalNullable[EvaluationRunFilterInput], + FieldMetadata(request=RequestMetadata(media_type="application/json")), + ] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["page_size", "page", "EvaluationRunFilterInput"]) + nullable_fields = set(["EvaluationRunFilterInput"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/searchallevaluationrunsresponse.py b/src/mistralai/client/models/searchallevaluationrunsresponse.py new file mode 100644 index 000000000..06d84278c --- /dev/null +++ b/src/mistralai/client/models/searchallevaluationrunsresponse.py @@ -0,0 +1,17 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .paginatedresultevaluationrunv2withrefsresponse import ( + PaginatedResultEvaluationRunV2WithRefsResponse, + PaginatedResultEvaluationRunV2WithRefsResponseTypedDict, +) +from mistralai.client.types import BaseModel +from typing_extensions import TypedDict + + +class SearchAllEvaluationRunsResponseTypedDict(TypedDict): + runs: PaginatedResultEvaluationRunV2WithRefsResponseTypedDict + + +class SearchAllEvaluationRunsResponse(BaseModel): + runs: PaginatedResultEvaluationRunV2WithRefsResponse diff --git a/src/mistralai/client/models/simplenumericstatisticspec.py b/src/mistralai/client/models/simplenumericstatisticspec.py new file mode 100644 index 000000000..f1e98be47 --- /dev/null +++ b/src/mistralai/client/models/simplenumericstatisticspec.py @@ -0,0 +1,68 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .goalspec import GoalSpec, GoalSpecTypedDict +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, + UnrecognizedStr, +) +from pydantic import model_serializer +from typing import Literal, Union +from typing_extensions import NotRequired, TypedDict + + +SimpleNumericStatisticSpecKind = Union[ + Literal[ + "avg", + "sum", + "min", + "max", + "std", + "count", + ], + UnrecognizedStr, +] + + +class SimpleNumericStatisticSpecTypedDict(TypedDict): + r"""A scalar numeric reduction with no parameters (``avg``/``sum``/``min``/``max``/``std``/``count``).""" + + kind: SimpleNumericStatisticSpecKind + goal: NotRequired[Nullable[GoalSpecTypedDict]] + + +class SimpleNumericStatisticSpec(BaseModel): + r"""A scalar numeric reduction with no parameters (``avg``/``sum``/``min``/``max``/``std``/``count``).""" + + kind: SimpleNumericStatisticSpecKind + + goal: OptionalNullable[GoalSpec] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["goal"]) + nullable_fields = set(["goal"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/sortdirection.py b/src/mistralai/client/models/sortdirection.py new file mode 100644 index 000000000..ba63db25d --- /dev/null +++ b/src/mistralai/client/models/sortdirection.py @@ -0,0 +1,10 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from typing import Literal + + +SortDirection = Literal[ + "asc", + "desc", +] diff --git a/src/mistralai/client/models/speechrequest.py b/src/mistralai/client/models/speechrequest.py index a13bc10e7..dc5fa0bdc 100644 --- a/src/mistralai/client/models/speechrequest.py +++ b/src/mistralai/client/models/speechrequest.py @@ -1,6 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations +from .ipaphoneme import IPAPhoneme from .speechoutputformat import SpeechOutputFormat from mistralai.client.types import ( BaseModel, @@ -11,7 +12,7 @@ ) import pydantic from pydantic import ConfigDict, model_serializer -from typing import Any, Dict, Optional +from typing import Any, Dict, List, Optional from typing_extensions import NotRequired, TypedDict @@ -26,6 +27,8 @@ class SpeechRequestTypedDict(TypedDict): r"""The preset or custom voice to use for generating the speech.""" ref_audio: NotRequired[Nullable[str]] r"""The audio reference for generating the speech.""" + phoneme_hints: NotRequired[Nullable[Dict[str, List[IPAPhoneme]]]] + r"""Optional pronunciation hints mapping a (case-sensitive) word to its ordered list of IPA phones.""" response_format: NotRequired[SpeechOutputFormat] @@ -52,6 +55,9 @@ class SpeechRequest(BaseModel): ref_audio: OptionalNullable[str] = UNSET r"""The audio reference for generating the speech.""" + phoneme_hints: OptionalNullable[Dict[str, List[IPAPhoneme]]] = UNSET + r"""Optional pronunciation hints mapping a (case-sensitive) word to its ordered list of IPA phones.""" + response_format: Optional[SpeechOutputFormat] = None @property @@ -72,11 +78,19 @@ def serialize_model(self, handler): "prompt_cache_key", "voice_id", "ref_audio", + "phoneme_hints", "response_format", ] ) nullable_fields = set( - ["model", "metadata", "prompt_cache_key", "voice_id", "ref_audio"] + [ + "model", + "metadata", + "prompt_cache_key", + "voice_id", + "ref_audio", + "phoneme_hints", + ] ) serialized = handler(self) m = {} diff --git a/src/mistralai/client/models/systemfilter.py b/src/mistralai/client/models/systemfilter.py new file mode 100644 index 000000000..46db2ba31 --- /dev/null +++ b/src/mistralai/client/models/systemfilter.py @@ -0,0 +1,53 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .systemnamefiltergroup import SystemNameFilterGroup, SystemNameFilterGroupTypedDict +from .systemparamfiltergroup import ( + SystemParamFilterGroup, + SystemParamFilterGroupTypedDict, +) +from mistralai.client.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing_extensions import NotRequired, TypedDict + + +class SystemFilterTypedDict(TypedDict): + name: NotRequired[Nullable[SystemNameFilterGroupTypedDict]] + params: NotRequired[Nullable[SystemParamFilterGroupTypedDict]] + + +class SystemFilter(BaseModel): + name: OptionalNullable[SystemNameFilterGroup] = UNSET + + params: OptionalNullable[SystemParamFilterGroup] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["name", "params"]) + nullable_fields = set(["name", "params"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/mistralai/client/models/systemnamefilter.py b/src/mistralai/client/models/systemnamefilter.py new file mode 100644 index 000000000..28c82ca3d --- /dev/null +++ b/src/mistralai/client/models/systemnamefilter.py @@ -0,0 +1,35 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .contentsearchoperator import ContentSearchOperator +from mistralai.client.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class SystemNameFilterTypedDict(TypedDict): + value: str + operator: NotRequired[ContentSearchOperator] + + +class SystemNameFilter(BaseModel): + value: str + + operator: Optional[ContentSearchOperator] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["operator"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/mistralai/client/models/systemnamefiltergroup.py b/src/mistralai/client/models/systemnamefiltergroup.py new file mode 100644 index 000000000..17e22db22 --- /dev/null +++ b/src/mistralai/client/models/systemnamefiltergroup.py @@ -0,0 +1,36 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .filtercombinator import FilterCombinator +from .systemnamefilter import SystemNameFilter, SystemNameFilterTypedDict +from mistralai.client.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class SystemNameFilterGroupTypedDict(TypedDict): + combinator: NotRequired[FilterCombinator] + filters: NotRequired[List[SystemNameFilterTypedDict]] + + +class SystemNameFilterGroup(BaseModel): + combinator: Optional[FilterCombinator] = None + + filters: Optional[List[SystemNameFilter]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["combinator", "filters"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/mistralai/client/models/systemparamfilter.py b/src/mistralai/client/models/systemparamfilter.py new file mode 100644 index 000000000..53262b6c0 --- /dev/null +++ b/src/mistralai/client/models/systemparamfilter.py @@ -0,0 +1,31 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .systemparamoperator import SystemParamOperator +from mistralai.client.types import BaseModel +from typing import Union +from typing_extensions import TypeAliasType, TypedDict + + +SystemParamFilterValueTypedDict = TypeAliasType( + "SystemParamFilterValueTypedDict", Union[float, str, bool] +) + + +SystemParamFilterValue = TypeAliasType( + "SystemParamFilterValue", Union[float, str, bool] +) + + +class SystemParamFilterTypedDict(TypedDict): + key: str + operator: SystemParamOperator + value: SystemParamFilterValueTypedDict + + +class SystemParamFilter(BaseModel): + key: str + + operator: SystemParamOperator + + value: SystemParamFilterValue diff --git a/src/mistralai/client/models/systemparamfiltergroup.py b/src/mistralai/client/models/systemparamfiltergroup.py new file mode 100644 index 000000000..c0a94bfab --- /dev/null +++ b/src/mistralai/client/models/systemparamfiltergroup.py @@ -0,0 +1,36 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .filtercombinator import FilterCombinator +from .systemparamfilter import SystemParamFilter, SystemParamFilterTypedDict +from mistralai.client.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class SystemParamFilterGroupTypedDict(TypedDict): + combinator: NotRequired[FilterCombinator] + filters: NotRequired[List[SystemParamFilterTypedDict]] + + +class SystemParamFilterGroup(BaseModel): + combinator: Optional[FilterCombinator] = None + + filters: Optional[List[SystemParamFilter]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["combinator", "filters"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/mistralai/client/models/systemparamoperator.py b/src/mistralai/client/models/systemparamoperator.py new file mode 100644 index 000000000..1a70cc755 --- /dev/null +++ b/src/mistralai/client/models/systemparamoperator.py @@ -0,0 +1,14 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from typing import Literal + + +SystemParamOperator = Literal[ + "eq", + "contains", + "gt", + "gte", + "lt", + "lte", +] diff --git a/src/mistralai/client/models/systemv2.py b/src/mistralai/client/models/systemv2.py new file mode 100644 index 000000000..651a6562d --- /dev/null +++ b/src/mistralai/client/models/systemv2.py @@ -0,0 +1,51 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from datetime import datetime +from mistralai.client.types import BaseModel, Nullable, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Dict, Union +from typing_extensions import TypeAliasType, TypedDict + + +ParamsTypedDict = TypeAliasType("ParamsTypedDict", Union[str, int, float, bool]) + + +Params = TypeAliasType("Params", Union[str, int, float, bool]) + + +class SystemV2TypedDict(TypedDict): + id: str + created_at: datetime + updated_at: datetime + deleted_at: Nullable[datetime] + name: str + params: Dict[str, ParamsTypedDict] + + +class SystemV2(BaseModel): + id: str + + created_at: datetime + + updated_at: datetime + + deleted_at: Nullable[datetime] + + name: str + + params: Dict[str, Params] + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + m[k] = val + + return m diff --git a/src/mistralai/client/models/tagfilter.py b/src/mistralai/client/models/tagfilter.py new file mode 100644 index 000000000..ecb677df2 --- /dev/null +++ b/src/mistralai/client/models/tagfilter.py @@ -0,0 +1,35 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .filtercombinator import FilterCombinator +from mistralai.client.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class TagFilterTypedDict(TypedDict): + combinator: NotRequired[FilterCombinator] + values: NotRequired[List[str]] + + +class TagFilter(BaseModel): + combinator: Optional[FilterCombinator] = None + + values: Optional[List[str]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["combinator", "values"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/mistralai/client/models/unsupportedstatistics.py b/src/mistralai/client/models/unsupportedstatistics.py new file mode 100644 index 000000000..cd35673e0 --- /dev/null +++ b/src/mistralai/client/models/unsupportedstatistics.py @@ -0,0 +1,49 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import BaseModel, UNSET_SENTINEL +from mistralai.client.utils import validate_const +import pydantic +from pydantic import model_serializer +from pydantic.functional_validators import AfterValidator +from typing import Literal, Optional +from typing_extensions import Annotated, TypedDict + + +class UnsupportedStatisticsTypedDict(TypedDict): + count: int + type: Literal["unsupported"] + + +class UnsupportedStatistics(BaseModel): + count: int + + type: Annotated[ + Annotated[ + Optional[Literal["unsupported"]], + AfterValidator(validate_const("unsupported")), + ], + pydantic.Field(alias="type"), + ] = "unsupported" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["type"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + +try: + UnsupportedStatistics.model_rebuild() +except NameError: + pass diff --git a/src/mistralai/client/models/update_dataset_v1_observability_datasets_dataset_id_patchop.py b/src/mistralai/client/models/update_dataset_v1_observability_datasets_dataset_id_patchop.py index c0e5a3d40..19adceb20 100644 --- a/src/mistralai/client/models/update_dataset_v1_observability_datasets_dataset_id_patchop.py +++ b/src/mistralai/client/models/update_dataset_v1_observability_datasets_dataset_id_patchop.py @@ -9,6 +9,7 @@ class UpdateDatasetV1ObservabilityDatasetsDatasetIDPatchRequestTypedDict(TypedDict): dataset_id: str + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" update_dataset_request: UpdateDatasetRequestTypedDict @@ -16,6 +17,7 @@ class UpdateDatasetV1ObservabilityDatasetsDatasetIDPatchRequest(BaseModel): dataset_id: Annotated[ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) ] + r"""Dataset UUID or workspace-scoped slug. UUID-shaped values are always interpreted as dataset IDs.""" update_dataset_request: Annotated[ UpdateDatasetRequest, diff --git a/src/mistralai/client/models/updatepipelinerequest.py b/src/mistralai/client/models/updatepipelinerequest.py index b7ee4bddf..7edf03d53 100644 --- a/src/mistralai/client/models/updatepipelinerequest.py +++ b/src/mistralai/client/models/updatepipelinerequest.py @@ -14,32 +14,34 @@ UNSET_SENTINEL, ) from pydantic import model_serializer -from typing import List +from typing import List, Optional from typing_extensions import NotRequired, TypedDict class UpdatePipelineRequestTypedDict(TypedDict): - name: str - selectors: List[PipelineConfigSelectorTypedDict] - definitions: List[JudgeDefinitionTypedDict] - enabled: bool + name: NotRequired[str] description: NotRequired[Nullable[str]] + selectors: NotRequired[List[PipelineConfigSelectorTypedDict]] + definitions: NotRequired[List[JudgeDefinitionTypedDict]] + enabled: NotRequired[bool] class UpdatePipelineRequest(BaseModel): - name: str + name: Optional[str] = None - selectors: List[PipelineConfigSelector] + description: OptionalNullable[str] = UNSET - definitions: List[JudgeDefinition] + selectors: Optional[List[PipelineConfigSelector]] = None - enabled: bool + definitions: Optional[List[JudgeDefinition]] = None - description: OptionalNullable[str] = UNSET + enabled: Optional[bool] = None @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = set(["description"]) + optional_fields = set( + ["name", "description", "selectors", "definitions", "enabled"] + ) nullable_fields = set(["description"]) serialized = handler(self) m = {} diff --git a/src/mistralai/client/models/voicekind.py b/src/mistralai/client/models/voicekind.py new file mode 100644 index 000000000..c1290073d --- /dev/null +++ b/src/mistralai/client/models/voicekind.py @@ -0,0 +1,14 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from mistralai.client.types import UnrecognizedStr +from typing import Literal, Union + + +VoiceKind = Union[ + Literal[ + "ivc", + "pvc", + ], + UnrecognizedStr, +] diff --git a/src/mistralai/client/models/voiceresponse.py b/src/mistralai/client/models/voiceresponse.py index 06444cc98..a31dba176 100644 --- a/src/mistralai/client/models/voiceresponse.py +++ b/src/mistralai/client/models/voiceresponse.py @@ -1,6 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations +from .voicekind import VoiceKind from datetime import datetime from mistralai.client.types import ( BaseModel, @@ -41,6 +42,7 @@ class VoiceResponseTypedDict(TypedDict): description: NotRequired[Nullable[str]] retention_notice: NotRequired[int] trimmed_seconds: NotRequired[Nullable[float]] + kind: NotRequired[VoiceKind] class VoiceResponse(BaseModel): @@ -74,6 +76,8 @@ class VoiceResponse(BaseModel): trimmed_seconds: OptionalNullable[float] = UNSET + kind: Optional[VoiceKind] = None + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( @@ -87,6 +91,7 @@ def serialize_model(self, handler): "description", "retention_notice", "trimmed_seconds", + "kind", ] ) nullable_fields = set( diff --git a/src/mistralai/client/optimizations.py b/src/mistralai/client/optimizations.py new file mode 100644 index 000000000..8c9137388 --- /dev/null +++ b/src/mistralai/client/optimizations.py @@ -0,0 +1,637 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from .basesdk import BaseSDK +from mistralai.client import errors, models, utils +from mistralai.client._hooks import HookContext +from mistralai.client.types import OptionalNullable, UNSET +from mistralai.client.utils import get_security_from_env +from mistralai.client.utils.unmarshal_json_response import unmarshal_json_response +from typing import Any, Iterable, List, Mapping, Optional + + +class Optimizations(BaseSDK): + def list( + self, + *, + project: OptionalNullable[str] = UNSET, + evaluation: OptionalNullable[str] = UNSET, + status: OptionalNullable[str] = UNSET, + algorithm: OptionalNullable[str] = UNSET, + tags: OptionalNullable[Iterable[str]] = UNSET, + page_size: Optional[int] = 50, + page: Optional[int] = 1, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.ListOptimizationsResponse: + r"""List optimizations with optional filters + + :param project: Filter by project slug + :param evaluation: Filter by evaluation slug + :param status: Filter by lifecycle status + :param algorithm: Filter by algorithm + :param tags: Filter by tags + :param page_size: + :param page: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.ListOptimizationsV1ObservabilityOptimizationsGetRequest( + project=project, + evaluation=evaluation, + status=status, + algorithm=algorithm, + tags=utils.unmarshal(tags, OptionalNullable[List[str]]), + page_size=page_size, + page=page, + ) + + req = self._build_request( + method="GET", + path="/v1/observability/optimizations", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=False, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = self.do_request( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="list_optimizations_v1_observability_optimizations_get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.optimizations"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.ListOptimizationsResponse, http_res) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + async def list_async( + self, + *, + project: OptionalNullable[str] = UNSET, + evaluation: OptionalNullable[str] = UNSET, + status: OptionalNullable[str] = UNSET, + algorithm: OptionalNullable[str] = UNSET, + tags: OptionalNullable[Iterable[str]] = UNSET, + page_size: Optional[int] = 50, + page: Optional[int] = 1, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.ListOptimizationsResponse: + r"""List optimizations with optional filters + + :param project: Filter by project slug + :param evaluation: Filter by evaluation slug + :param status: Filter by lifecycle status + :param algorithm: Filter by algorithm + :param tags: Filter by tags + :param page_size: + :param page: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.ListOptimizationsV1ObservabilityOptimizationsGetRequest( + project=project, + evaluation=evaluation, + status=status, + algorithm=algorithm, + tags=utils.unmarshal(tags, OptionalNullable[List[str]]), + page_size=page_size, + page=page, + ) + + req = self._build_request_async( + method="GET", + path="/v1/observability/optimizations", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=False, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = await self.do_request_async( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="list_optimizations_v1_observability_optimizations_get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.optimizations"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.ListOptimizationsResponse, http_res) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + def get( + self, + *, + optimization_id: str, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.OptimizationDetail: + r"""Get an optimization by id (with its anchored evaluation + project) + + :param optimization_id: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = ( + models.GetOptimizationV1ObservabilityOptimizationsOptimizationIDGetRequest( + optimization_id=optimization_id, + ) + ) + + req = self._build_request( + method="GET", + path="/v1/observability/optimizations/{optimization_id}", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = self.do_request( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="get_optimization_v1_observability_optimizations__optimization_id__get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.optimizations"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.OptimizationDetail, http_res) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + async def get_async( + self, + *, + optimization_id: str, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.OptimizationDetail: + r"""Get an optimization by id (with its anchored evaluation + project) + + :param optimization_id: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = ( + models.GetOptimizationV1ObservabilityOptimizationsOptimizationIDGetRequest( + optimization_id=optimization_id, + ) + ) + + req = self._build_request_async( + method="GET", + path="/v1/observability/optimizations/{optimization_id}", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = await self.do_request_async( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="get_optimization_v1_observability_optimizations__optimization_id__get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.optimizations"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response(models.OptimizationDetail, http_res) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + def list_trials( + self, + *, + optimization_id: str, + page_size: Optional[int] = 50, + page: Optional[int] = 1, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.ListOptimizationTrialsResponse: + r"""List an optimization's trials with their observation runs (paginated) + + :param optimization_id: + :param page_size: + :param page: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.ListOptimizationTrialsV1ObservabilityOptimizationsOptimizationIDTrialsGetRequest( + optimization_id=optimization_id, + page_size=page_size, + page=page, + ) + + req = self._build_request( + method="GET", + path="/v1/observability/optimizations/{optimization_id}/trials", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = self.do_request( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="list_optimization_trials_v1_observability_optimizations__optimization_id__trials_get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.optimizations"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response( + models.ListOptimizationTrialsResponse, http_res + ) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) + + async def list_trials_async( + self, + *, + optimization_id: str, + page_size: Optional[int] = 50, + page: Optional[int] = 1, + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.ListOptimizationTrialsResponse: + r"""List an optimization's trials with their observation runs (paginated) + + :param optimization_id: + :param page_size: + :param page: + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if timeout_ms is None: + timeout_ms = 300000 + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + request = models.ListOptimizationTrialsV1ObservabilityOptimizationsOptimizationIDTrialsGetRequest( + optimization_id=optimization_id, + page_size=page_size, + page=page, + ) + + req = self._build_request_async( + method="GET", + path="/v1/observability/optimizations/{optimization_id}/trials", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = await self.do_request_async( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="list_optimization_trials_v1_observability_optimizations__optimization_id__trials_get", + oauth2_scopes=None, + security_source=get_security_from_env( + self.sdk_configuration.security, models.Security + ), + tags=["beta.observability.evaluations.optimizations"], + extensions=None, + ), + request=req, + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return unmarshal_json_response( + models.ListOptimizationTrialsResponse, http_res + ) + if utils.match_response( + http_res, ["400", "404", "408", "409", "422"], "application/json" + ): + response_data = unmarshal_json_response( + errors.ObservabilityErrorData, http_res + ) + raise errors.ObservabilityError(response_data, http_res) + if utils.match_response(http_res, "4XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/mistralai/client/speech.py b/src/mistralai/client/speech.py index d8b678ffa..83e2dca96 100644 --- a/src/mistralai/client/speech.py +++ b/src/mistralai/client/speech.py @@ -6,7 +6,17 @@ from mistralai.client.types import OptionalNullable, UNSET from mistralai.client.utils import eventstreaming, get_security_from_env from mistralai.client.utils.unmarshal_json_response import unmarshal_json_response -from typing import Any, Dict, Literal, Mapping, Optional, Union, overload +from typing import ( + Any, + Dict, + Iterable, + List, + Literal, + Mapping, + Optional, + Union, + overload, +) class Speech(BaseSDK): @@ -21,6 +31,9 @@ def complete( prompt_cache_key: OptionalNullable[str] = UNSET, voice_id: OptionalNullable[str] = UNSET, ref_audio: OptionalNullable[str] = UNSET, + phoneme_hints: OptionalNullable[ + Mapping[str, Iterable[models.IPAPhoneme]] + ] = UNSET, response_format: Optional[models.SpeechOutputFormat] = None, additional_properties: Optional[Mapping[str, Any]] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, @@ -37,6 +50,7 @@ def complete( :param prompt_cache_key: :param voice_id: The preset or custom voice to use for generating the speech. :param ref_audio: The audio reference for generating the speech. + :param phoneme_hints: Optional pronunciation hints mapping a (case-sensitive) word to its ordered list of IPA phones. :param response_format: :param additional_properties: :param retries: Override the default retry configuration for this method @@ -56,6 +70,9 @@ def complete( prompt_cache_key: OptionalNullable[str] = UNSET, voice_id: OptionalNullable[str] = UNSET, ref_audio: OptionalNullable[str] = UNSET, + phoneme_hints: OptionalNullable[ + Mapping[str, Iterable[models.IPAPhoneme]] + ] = UNSET, response_format: Optional[models.SpeechOutputFormat] = None, additional_properties: Optional[Mapping[str, Any]] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, @@ -72,6 +89,7 @@ def complete( :param prompt_cache_key: :param voice_id: The preset or custom voice to use for generating the speech. :param ref_audio: The audio reference for generating the speech. + :param phoneme_hints: Optional pronunciation hints mapping a (case-sensitive) word to its ordered list of IPA phones. :param response_format: :param additional_properties: :param retries: Override the default retry configuration for this method @@ -91,6 +109,9 @@ def complete( prompt_cache_key: OptionalNullable[str] = UNSET, voice_id: OptionalNullable[str] = UNSET, ref_audio: OptionalNullable[str] = UNSET, + phoneme_hints: OptionalNullable[ + Mapping[str, Iterable[models.IPAPhoneme]] + ] = UNSET, response_format: Optional[models.SpeechOutputFormat] = None, additional_properties: Optional[Mapping[str, Any]] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, @@ -109,6 +130,7 @@ def complete( :param prompt_cache_key: :param voice_id: The preset or custom voice to use for generating the speech. :param ref_audio: The audio reference for generating the speech. + :param phoneme_hints: Optional pronunciation hints mapping a (case-sensitive) word to its ordered list of IPA phones. :param response_format: :param additional_properties: :param retries: Override the default retry configuration for this method @@ -127,6 +149,9 @@ def complete( prompt_cache_key: OptionalNullable[str] = UNSET, voice_id: OptionalNullable[str] = UNSET, ref_audio: OptionalNullable[str] = UNSET, + phoneme_hints: OptionalNullable[ + Mapping[str, Iterable[models.IPAPhoneme]] + ] = UNSET, response_format: Optional[models.SpeechOutputFormat] = None, additional_properties: Optional[Mapping[str, Any]] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, @@ -145,6 +170,7 @@ def complete( :param prompt_cache_key: :param voice_id: The preset or custom voice to use for generating the speech. :param ref_audio: The audio reference for generating the speech. + :param phoneme_hints: Optional pronunciation hints mapping a (case-sensitive) word to its ordered list of IPA phones. :param response_format: :param additional_properties: :param retries: Override the default retry configuration for this method @@ -173,6 +199,9 @@ def complete( voice_id=voice_id, ref_audio=ref_audio, input=input, + phoneme_hints=utils.unmarshal( + phoneme_hints, OptionalNullable[Dict[str, List[models.IPAPhoneme]]] + ), response_format=response_format, **(utils.unmarshal(additional_properties, Optional[Dict[str, Any]]) or {}), ) @@ -266,6 +295,9 @@ async def complete_async( prompt_cache_key: OptionalNullable[str] = UNSET, voice_id: OptionalNullable[str] = UNSET, ref_audio: OptionalNullable[str] = UNSET, + phoneme_hints: OptionalNullable[ + Mapping[str, Iterable[models.IPAPhoneme]] + ] = UNSET, response_format: Optional[models.SpeechOutputFormat] = None, additional_properties: Optional[Mapping[str, Any]] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, @@ -282,6 +314,7 @@ async def complete_async( :param prompt_cache_key: :param voice_id: The preset or custom voice to use for generating the speech. :param ref_audio: The audio reference for generating the speech. + :param phoneme_hints: Optional pronunciation hints mapping a (case-sensitive) word to its ordered list of IPA phones. :param response_format: :param additional_properties: :param retries: Override the default retry configuration for this method @@ -301,6 +334,9 @@ async def complete_async( prompt_cache_key: OptionalNullable[str] = UNSET, voice_id: OptionalNullable[str] = UNSET, ref_audio: OptionalNullable[str] = UNSET, + phoneme_hints: OptionalNullable[ + Mapping[str, Iterable[models.IPAPhoneme]] + ] = UNSET, response_format: Optional[models.SpeechOutputFormat] = None, additional_properties: Optional[Mapping[str, Any]] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, @@ -317,6 +353,7 @@ async def complete_async( :param prompt_cache_key: :param voice_id: The preset or custom voice to use for generating the speech. :param ref_audio: The audio reference for generating the speech. + :param phoneme_hints: Optional pronunciation hints mapping a (case-sensitive) word to its ordered list of IPA phones. :param response_format: :param additional_properties: :param retries: Override the default retry configuration for this method @@ -336,6 +373,9 @@ async def complete_async( prompt_cache_key: OptionalNullable[str] = UNSET, voice_id: OptionalNullable[str] = UNSET, ref_audio: OptionalNullable[str] = UNSET, + phoneme_hints: OptionalNullable[ + Mapping[str, Iterable[models.IPAPhoneme]] + ] = UNSET, response_format: Optional[models.SpeechOutputFormat] = None, additional_properties: Optional[Mapping[str, Any]] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, @@ -355,6 +395,7 @@ async def complete_async( :param prompt_cache_key: :param voice_id: The preset or custom voice to use for generating the speech. :param ref_audio: The audio reference for generating the speech. + :param phoneme_hints: Optional pronunciation hints mapping a (case-sensitive) word to its ordered list of IPA phones. :param response_format: :param additional_properties: :param retries: Override the default retry configuration for this method @@ -373,6 +414,9 @@ async def complete_async( prompt_cache_key: OptionalNullable[str] = UNSET, voice_id: OptionalNullable[str] = UNSET, ref_audio: OptionalNullable[str] = UNSET, + phoneme_hints: OptionalNullable[ + Mapping[str, Iterable[models.IPAPhoneme]] + ] = UNSET, response_format: Optional[models.SpeechOutputFormat] = None, additional_properties: Optional[Mapping[str, Any]] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, @@ -392,6 +436,7 @@ async def complete_async( :param prompt_cache_key: :param voice_id: The preset or custom voice to use for generating the speech. :param ref_audio: The audio reference for generating the speech. + :param phoneme_hints: Optional pronunciation hints mapping a (case-sensitive) word to its ordered list of IPA phones. :param response_format: :param additional_properties: :param retries: Override the default retry configuration for this method @@ -420,6 +465,9 @@ async def complete_async( voice_id=voice_id, ref_audio=ref_audio, input=input, + phoneme_hints=utils.unmarshal( + phoneme_hints, OptionalNullable[Dict[str, List[models.IPAPhoneme]]] + ), response_format=response_format, **(utils.unmarshal(additional_properties, Optional[Dict[str, Any]]) or {}), ) diff --git a/src/mistralai/client/workflows.py b/src/mistralai/client/workflows.py index 642f59509..6e2b94dc7 100644 --- a/src/mistralai/client/workflows.py +++ b/src/mistralai/client/workflows.py @@ -8,12 +8,12 @@ from mistralai.client.deployments import Deployments from mistralai.client.executions import Executions from mistralai.client.metrics import Metrics -from mistralai.client.runs import Runs from mistralai.client.schedules import Schedules from mistralai.client.types import OptionalNullable, UNSET from mistralai.client.utils import get_security_from_env from mistralai.client.utils.unmarshal_json_response import unmarshal_json_response from mistralai.client.workflows_events import WorkflowsEvents +from mistralai.client.workflows_runs import WorkflowsRuns from typing import Any, Awaitable, Dict, Iterable, List, Mapping, Optional, Union from typing_extensions import deprecated @@ -27,7 +27,7 @@ class Workflows(BaseSDK): executions: Executions metrics: Metrics - runs: Runs + runs: WorkflowsRuns schedules: Schedules events: WorkflowsEvents deployments: Deployments @@ -42,7 +42,7 @@ def __init__( def _init_sdks(self): self.executions = Executions(self.sdk_configuration, parent_ref=self.parent_ref) self.metrics = Metrics(self.sdk_configuration, parent_ref=self.parent_ref) - self.runs = Runs(self.sdk_configuration, parent_ref=self.parent_ref) + self.runs = WorkflowsRuns(self.sdk_configuration, parent_ref=self.parent_ref) self.schedules = Schedules(self.sdk_configuration, parent_ref=self.parent_ref) self.events = WorkflowsEvents( self.sdk_configuration, parent_ref=self.parent_ref @@ -653,6 +653,7 @@ def get_workflow_registrations( task_queue: OptionalNullable[str] = UNSET, active_only: Optional[bool] = False, include_shared: Optional[bool] = True, + workflow_name: OptionalNullable[str] = UNSET, workflow_search: OptionalNullable[str] = UNSET, archived: OptionalNullable[bool] = UNSET, with_workflow: Optional[bool] = False, @@ -670,6 +671,7 @@ def get_workflow_registrations( :param task_queue: The task queue to filter by :param active_only: Whether to only return active workflows versions :param include_shared: Whether to include shared workflow versions + :param workflow_name: Exact workflow name to filter by :param workflow_search: The workflow name to filter by :param archived: Filter by archived state. False=exclude archived, True=only archived, None=include all :param with_workflow: Whether to include the workflow definition @@ -699,6 +701,7 @@ def get_workflow_registrations( task_queue=task_queue, active_only=active_only, include_shared=include_shared, + workflow_name=workflow_name, workflow_search=workflow_search, archived=archived, with_workflow=with_workflow, @@ -775,6 +778,7 @@ async def get_workflow_registrations_async( task_queue: OptionalNullable[str] = UNSET, active_only: Optional[bool] = False, include_shared: Optional[bool] = True, + workflow_name: OptionalNullable[str] = UNSET, workflow_search: OptionalNullable[str] = UNSET, archived: OptionalNullable[bool] = UNSET, with_workflow: Optional[bool] = False, @@ -792,6 +796,7 @@ async def get_workflow_registrations_async( :param task_queue: The task queue to filter by :param active_only: Whether to only return active workflows versions :param include_shared: Whether to include shared workflow versions + :param workflow_name: Exact workflow name to filter by :param workflow_search: The workflow name to filter by :param archived: Filter by archived state. False=exclude archived, True=only archived, None=include all :param with_workflow: Whether to include the workflow definition @@ -821,6 +826,7 @@ async def get_workflow_registrations_async( task_queue=task_queue, active_only=active_only, include_shared=include_shared, + workflow_name=workflow_name, workflow_search=workflow_search, archived=archived, with_workflow=with_workflow, diff --git a/src/mistralai/client/runs.py b/src/mistralai/client/workflows_runs.py similarity index 99% rename from src/mistralai/client/runs.py rename to src/mistralai/client/workflows_runs.py index c65d5d7c6..487969546 100644 --- a/src/mistralai/client/runs.py +++ b/src/mistralai/client/workflows_runs.py @@ -11,7 +11,7 @@ from typing import Any, Awaitable, Dict, Iterable, List, Mapping, Optional, Union -class Runs(BaseSDK): +class WorkflowsRuns(BaseSDK): def list_runs( self, *, diff --git a/src/mistralai/extra/connectors_gateway.py b/src/mistralai/extra/connectors_gateway.py index 945b3109e..2c909cc8f 100644 --- a/src/mistralai/extra/connectors_gateway.py +++ b/src/mistralai/extra/connectors_gateway.py @@ -140,6 +140,7 @@ async def mcp_client( "mcp", ) + caller_error: Exception | None = None try: async with http_client: async with streamable_http_client( @@ -148,12 +149,19 @@ async def mcp_client( ) as (read_stream, write_stream): async with ClientSession(read_stream, write_stream) as session: await session.initialize() - yield session + try: + yield session + except Exception as exc: + # Close the session normally and re-raise below, so MCP's + # task groups do not wrap the caller's error in an ExceptionGroup. + caller_error = exc except Exception as exc: gateway_error = single_connectors_gateway_error(exc) if gateway_error is not None: raise gateway_error from None raise + if caller_error is not None: + raise caller_error def http_client( diff --git a/src/mistralai/extra/tests/fixtures/workflow_encryption_parity.py b/src/mistralai/extra/tests/fixtures/workflow_encryption_parity.py new file mode 100644 index 000000000..3e92fb308 --- /dev/null +++ b/src/mistralai/extra/tests/fixtures/workflow_encryption_parity.py @@ -0,0 +1,329 @@ +"""Shared fixtures for workflow payload encryption parity with the TS client. + +The TypeScript client (``ts/client-ts``) must produce the same encrypted bytes +as this client. These cases run the real ``PayloadEncoder`` with deterministic +nonces and are written to the TS test suite, which replays them. The +``test_workflow_encryption_parity`` test checks that this client still +produces the committed file. + +Regenerate the file from ``client-python`` with: + + uv run python -m mistralai.extra.tests.fixtures.workflow_encryption_parity +""" + +from __future__ import annotations + +import asyncio +import base64 +import hashlib +import json +from pathlib import Path +from typing import Any, Callable, Iterator +from unittest import mock + +from pydantic import SecretStr + +from mistralai.extra.workflows.encoding import ( + PayloadEncryptionConfig, + PayloadEncryptionMode, + WorkflowEncodingConfig, +) +from mistralai.extra.workflows.encoding import payload_encoder as payload_encoder_module +from mistralai.extra.workflows.encoding.models import ( + EncodedPayloadOptions, + WorkflowContext, +) +from mistralai.extra.workflows.encoding.payload_encoder import PayloadEncoder + +FIXTURE_PATH = ( + Path(__file__).resolve().parents[6] + / "ts" + / "client-ts" + / "tests" + / "extra" + / "fixtures" + / "workflow_encryption_parity.json" +) + + +def _hex_key(seed: str, size: int = 32) -> str: + return hashlib.sha256(seed.encode()).hexdigest()[: size * 2] + + +KEYS = { + "main": _hex_key("main-key"), + "secondary": _hex_key("secondary-key"), + "aes128": _hex_key("aes128-key", 16), + "aes192": _hex_key("aes192-key", 24), +} + + +def _encrypted(data: str) -> dict[str, str]: + return {"field_type": "__encrypted_str__", "data": data} + + +# Workflow inputs, as the workflow encoding hook receives them after parsing +# the request body. Integer-valued floats are left out: JavaScript can't tell +# them apart from integers (the raw payload cases cover them). +NETWORK_INPUTS: dict[str, Any] = { + "object": {"name": "alice", "count": 3, "active": True, "tags": ["a", "b"]}, + "nested": {"a": {"b": {"c": [1, {"d": None}, [], {}]}}, "z": False}, + "unicode": {"text": "héllo wörld ✓ 😀 \u2028", "ctrl": "\x00\x1f\x7f\n\t\"\\/"}, + "numbers": { + "floats": [0.5, -1.25, 0.1, 1e-05, 1.5e-06, 1e-07, 123456.789, 1e-300], + "ints": [0, -7, 9007199254740991, 1000000000000000000000], + "tiny": 5e-324, + }, + # JavaScript objects always list integer-like keys first, in ascending + # order, so a JS input can only have this order (raw payloads cover others). + "integer_like_keys": {"2": "two", "10": "ten", "b": 1, "a": 2}, + "string": "just a string", + "list": [1, "two", {"three": 3}], + "number": 42, + "empty_object": {}, + "partial_top_level": { + "user": "alice", + "api_key": _encrypted("sk-secret"), + "unicode": _encrypted("mot de passe: été 😀"), + }, + "partial_nested": { + "config": { + "credentials": [ + _encrypted("first"), + {"inner": _encrypted("second"), "plain": "visible"}, + ], + "empty": _encrypted(""), + }, + "list": [[_encrypted("deep")]], + # A marker stops the traversal: nested markers are data, not fields. + "outer": { + "field_type": "__encrypted_str__", + "data": "outer", + "extra": _encrypted("not-a-field"), + }, + }, +} + +# Raw payload bytes given to ``encode_payload_content``. They exercise the +# re-serialization done by partial encryption with inputs that don't come +# from a serializer: whitespace, key order, duplicate keys, number formats. +RAW_PAYLOADS: dict[str, str] = { + "numbers_and_whitespace": ( + ' {"b" : 2.0, "a":[1e5, 1E-7, -0, -0.0, 1.50, 12345678901234567890123,' + ' 1e400, NaN, -Infinity], "10": 1, "2": {"field_type": "__encrypted_str__",' + ' "data": "x"}}\n' + ), + "duplicate_keys": '{"k": 1, "j": 2, "k": {"field_type": "__encrypted_str__", "data": "v"}}', + "escapes": r'{"s": "é😀\/\b\f", "e": {"field_type": "__encrypted_str__", "data": "\u0000"}}', + "no_encrypted_fields": '{"a":1,"b":[true,false,null]}', + "not_json": "this is not json", +} + + +def _nonces(case: str, count: int) -> list[str]: + return [ + hashlib.sha256(f"{case}-nonce-{i}".encode()).hexdigest()[:24] + for i in range(count) + ] + + +def _encoder(mode: str, main: str, secondary: str | None = None) -> PayloadEncoder: + return PayloadEncoder( + WorkflowEncodingConfig( + payload_encryption=PayloadEncryptionConfig( + mode=PayloadEncryptionMode(mode), + main_key=SecretStr(KEYS[main]), + secondary_key=SecretStr(KEYS[secondary]) if secondary else None, + ) + ) + ) + + +def _config(mode: str, main: str, secondary: str | None = None) -> dict[str, Any]: + config: dict[str, Any] = {"mode": mode, "main_key": main} + if secondary: + config["secondary_key"] = secondary + return config + + +class _NonceQueue: + """Feeds ``os.urandom`` with the nonces of the case being generated.""" + + def __init__(self, case: str) -> None: + self._nonces: Iterator[str] = iter(_nonces(case, 64)) + self.used: list[str] = [] + + def __call__(self, size: int) -> bytes: + assert size == PayloadEncoder._NONCE_SIZE + nonce = next(self._nonces) + self.used.append(nonce) + return bytes.fromhex(nonce) + + +_CONTEXT = WorkflowContext(namespace="parity", execution_id="parity-execution") + + +def _run_with_nonces(case: str, fn: Callable[[], Any]) -> tuple[Any, list[str]]: + """Runs ``fn`` (awaiting it if it returns a coroutine) with the case's nonces.""" + queue = _NonceQueue(case) + with mock.patch.object(payload_encoder_module.os, "urandom", queue): + result = fn() + if asyncio.iscoroutine(result): + result = asyncio.run(result) + return result, queue.used + + +def _b64(data: bytes) -> str: + return base64.b64encode(data).decode() + + +def _encode_network_input_cases() -> list[dict[str, Any]]: + cases = [] + for mode, main in [("full", "main"), ("partial", "main"), ("full", "aes128"), ("full", "aes192")]: + for input_name, input_value in NETWORK_INPUTS.items(): + if main != "main" and input_name not in ("object", "partial_top_level"): + continue + name = f"{mode}/{main}/{input_name}" + encoder = _encoder(mode, main) + encoded, nonces = _run_with_nonces( + name, lambda: encoder.encode_network_input(input_value, _CONTEXT) + ) + cases.append( + { + "name": name, + "config": _config(mode, main), + "input": input_value, + "nonces": nonces, + "expected": encoded.model_dump(mode="json"), + } + ) + return cases + + +def _encode_payload_content_cases() -> list[dict[str, Any]]: + cases = [] + for mode in ["partial", "full"]: + for payload_name, payload in RAW_PAYLOADS.items(): + name = f"{mode}/{payload_name}" + encoder = _encoder(mode, "main") + (data, options), nonces = _run_with_nonces( + name, lambda: encoder.encode_payload_content(payload.encode()) + ) + cases.append( + { + "name": name, + "config": _config(mode, "main"), + "data_b64": _b64(payload.encode()), + "nonces": nonces, + "expected": { + "data_b64": _b64(data), + "encoding_options": [o.value for o in options], + }, + } + ) + return cases + + +def _decode_network_result_cases() -> list[dict[str, Any]]: + """Payloads encrypted with the secondary key, decoded after key rotation.""" + cases = [] + for mode in ["full", "partial"]: + for input_name in ["object", "unicode", "partial_nested"]: + name = f"{mode}/rotated/{input_name}" + encoded, _ = _run_with_nonces( + name, + lambda: _encoder(mode, "secondary").encode_network_input( + NETWORK_INPUTS[input_name], _CONTEXT + ), + ) + decoder = _encoder(mode, "main", "secondary") + expected = asyncio.run( + decoder.decode_network_result(encoded.model_dump(mode="json")) + ) + cases.append( + { + "name": name, + "config": _config(mode, "main", "secondary"), + "encoded": encoded.model_dump(mode="json"), + "expected": expected, + } + ) + return cases + + +def _decode_event_payload_cases() -> list[dict[str, Any]]: + encoder = _encoder("full", "main") + + def encrypt(value: Any, case: str) -> str: + encrypted, _ = _run_with_nonces( + case, lambda: encoder._encrypt(json.dumps(value).encode()) + ) + return _b64(encrypted) + + payloads: dict[str, dict[str, Any]] = { + "json_full": { + "type": "json", + "value": encrypt({"state": "running", "progress": 0.5}, "json_full"), + "encoding_options": [EncodedPayloadOptions.ENCRYPTED.value], + }, + "json_patch_partial": { + "type": "json_patch", + "value": [ + { + "op": "add", + "path": "/secret", + "value": { + "type": "__encrypted__", + "value": encrypt({"token": "t0k3n"}, "patch-0"), + }, + }, + {"op": "replace", "path": "/plain", "value": "visible"}, + { + "op": "append", + "path": "/log", + "value": { + "type": "__encrypted__", + "value": encrypt("line ✓", "patch-1"), + }, + }, + ], + "encoding_options": [EncodedPayloadOptions.PARTIALLY_ENCRYPTED.value], + }, + "not_encoded": {"type": "json", "value": {"a": 1}, "encoding_options": []}, + } + + cases = [] + for name, payload in payloads.items(): + mode = "partial" if name == "json_patch_partial" else "full" + expected = asyncio.run( + _encoder(mode, "main").decode_event_payload(json.loads(json.dumps(payload))) + ) + cases.append( + { + "name": name, + "config": _config(mode, "main"), + "payload": payload, + "expected": expected, + } + ) + return cases + + +def build_fixtures() -> dict[str, Any]: + return { + "keys": KEYS, + "encode_network_input": _encode_network_input_cases(), + "encode_payload_content": _encode_payload_content_cases(), + "decode_network_result": _decode_network_result_cases(), + "decode_event_payload": _decode_event_payload_cases(), + } + + +def render_fixtures() -> str: + return json.dumps(build_fixtures(), indent=2, ensure_ascii=False) + "\n" + + +if __name__ == "__main__": + FIXTURE_PATH.parent.mkdir(parents=True, exist_ok=True) + FIXTURE_PATH.write_text(render_fixtures(), encoding="utf-8") + print(f"Wrote {FIXTURE_PATH}") diff --git a/src/mistralai/extra/tests/fixtures/workflow_offloading_parity.py b/src/mistralai/extra/tests/fixtures/workflow_offloading_parity.py new file mode 100644 index 000000000..23c0355eb --- /dev/null +++ b/src/mistralai/extra/tests/fixtures/workflow_offloading_parity.py @@ -0,0 +1,308 @@ +"""Shared fixtures for workflow payload offloading and compression parity with +the TS client. + +The TypeScript client (``ts/client-ts``) must offload payloads under the same +blob keys and with the same bytes as this client, and decode the payloads this +client compresses and offloads. These cases run the real ``PayloadEncoder`` +with deterministic nonces and an in-memory blob storage, and are written to +the TS test suite, which replays them. The +``test_workflow_offloading_parity`` test checks that this client still +produces the committed file. + +Compressed bytes are not compared: they depend on the libzstd version of each +client, while any zstd frame decodes the same. + +Regenerate the file from ``client-python`` with: + + uv run python -m mistralai.extra.tests.fixtures.workflow_offloading_parity +""" + +from __future__ import annotations + +import json +from typing import Any, Callable, Optional +from unittest import mock + +from pydantic import SecretStr + +from mistralai.extra.tests.fixtures.workflow_encoding import InMemoryBlobStorage +from mistralai.extra.tests.fixtures.workflow_encryption_parity import ( + FIXTURE_PATH as ENCRYPTION_FIXTURE_PATH, + KEYS, + NETWORK_INPUTS, + _b64, + _run_with_nonces, +) +from mistralai.extra.workflows.encoding import ( + BlobStorageConfig, + PayloadCompressionConfig, + PayloadEncryptionConfig, + PayloadEncryptionMode, + PayloadOffloadingConfig, + StorageProvider, + WorkflowEncodingConfig, + ZstdCompressionConfig, +) +from mistralai.extra.workflows.encoding import payload_encoder as payload_encoder_module +from mistralai.extra.workflows.encoding.models import WorkflowContext +from mistralai.extra.workflows.encoding.payload_encoder import PayloadEncoder + +FIXTURE_PATH = ENCRYPTION_FIXTURE_PATH.with_name("workflow_offloading_parity.json") + +CONTEXTS = { + "plain": WorkflowContext(namespace="parity", execution_id="parity-execution"), + # Python's quote(safe="") escapes !'()* and keeps ~, unlike encodeURIComponent. + "escaped": WorkflowContext( + namespace="team ns/!'()*~é", execution_id="exec:1+2&3?#" + ), +} + +LARGE_INPUT: dict[str, Any] = { + "data": "x" * 2_000, + "secret": {"field_type": "__encrypted_str__", "data": "secret value"}, +} + + +def _config( + encryption: Optional[str] = None, + offloading: Optional[int] = None, + compression: Optional[int] = None, + level: int = 3, + main: str = "main", + secondary: Optional[str] = None, +) -> dict[str, Any]: + """The config of a case, as the TS tests read it.""" + config: dict[str, Any] = {} + if encryption: + config["encryption"] = {"mode": encryption, "main_key": main} + if secondary: + config["encryption"]["secondary_key"] = secondary + if offloading is not None: + config["offloading"] = {"min_size_bytes": offloading} + if compression is not None: + config["compression"] = {"min_size_bytes": compression, "level": level} + return config + + +def _encoder(config: dict[str, Any]) -> PayloadEncoder: + encryption = config.get("encryption") + offloading = config.get("offloading") + compression = config.get("compression") + return PayloadEncoder( + WorkflowEncodingConfig( + payload_encryption=PayloadEncryptionConfig( + mode=PayloadEncryptionMode(encryption["mode"]), + main_key=SecretStr(KEYS[encryption["main_key"]]), + secondary_key=( + SecretStr(KEYS[encryption["secondary_key"]]) + if "secondary_key" in encryption + else None + ), + ) + if encryption + else None, + payload_offloading=PayloadOffloadingConfig( + min_size_bytes=offloading["min_size_bytes"], + storage_config=BlobStorageConfig( + storage_provider=StorageProvider.S3, + bucket_name="parity-bucket", + ), + ) + if offloading + else None, + payload_compression=PayloadCompressionConfig( + min_size_bytes=compression["min_size_bytes"], + algorithm_config=ZstdCompressionConfig(level=compression["level"]), + ) + if compression + else None, + ) + ) + + +def _context(name: Optional[str]) -> Optional[dict[str, str]]: + if name is None: + return None + context = CONTEXTS[name] + return {"namespace": context.namespace, "execution_id": context.execution_id} + + +def _run( + case: str, storage: InMemoryBlobStorage, fn: Callable[[], Any] +) -> tuple[Any, list[str]]: + with mock.patch.object( + payload_encoder_module, "get_blob_storage", lambda _: storage + ): + return _run_with_nonces(case, fn) + + +def _blobs(storage: InMemoryBlobStorage) -> dict[str, str]: + return {key: _b64(content) for key, content in sorted(storage.blobs.items())} + + +def _encode_network_input_cases() -> list[dict[str, Any]]: + """Offloaded inputs, compared byte for byte with their blobs.""" + variants: list[tuple[str, dict[str, Any], str, str]] = [] + for encryption in [None, "full", "partial"]: + for input_name in ["object", "unicode", "partial_top_level", "partial_nested"]: + variants.append( + (input_name, _config(encryption, offloading=1), input_name, "plain") + ) + variants.append( + ("escaped_context", _config(encryption, offloading=1), "object", "escaped") + ) + variants.append( + ("below_threshold", _config("full", offloading=1_000_000), "object", "plain") + ) + + cases = [] + for label, config, input_name, context_name in variants: + mode = config.get("encryption", {}).get("mode", "none") + name = f"{mode}/{label}/{input_name}" + storage = InMemoryBlobStorage() + encoder = _encoder(config) + input_value = NETWORK_INPUTS[input_name] + encoded, nonces = _run( + name, + storage, + lambda: encoder.encode_network_input( + input_value, CONTEXTS[context_name] + ), + ) + cases.append( + { + "name": name, + "config": config, + "context": _context(context_name), + "input": input_value, + "nonces": nonces, + "expected": encoded.model_dump(mode="json"), + "blobs": _blobs(storage), + } + ) + return cases + + +def _encode_payload_content_cases() -> list[dict[str, Any]]: + """Raw payloads with the offloading options of encode_payload_content.""" + variants: list[tuple[str, Optional[str], dict[str, Any]]] = [ + ("force_offload", "plain", {"force_offload": True}), + ("force_offload_escaped", "escaped", {"force_offload": True}), + ("offloading_not_allowed", "plain", {"allow_offloading": False}), + ("no_context", None, {}), + ] + cases = [] + for label, context_name, options in variants: + for encryption in [None, "full"]: + name = f"{encryption or 'none'}/{label}" + config = _config(encryption, offloading=1_000_000 if "force" in label else 1) + payload = b'{"tiny": true}' + storage = InMemoryBlobStorage() + encoder = _encoder(config) + context = CONTEXTS[context_name] if context_name else None + (data, encoding_options), nonces = _run( + name, + storage, + lambda: encoder.encode_payload_content(payload, context, **options), + ) + cases.append( + { + "name": name, + "config": config, + "context": _context(context_name), + "options": options, + "data_b64": _b64(payload), + "nonces": nonces, + "expected": { + "data_b64": _b64(data), + "encoding_options": [o.value for o in encoding_options], + }, + "blobs": _blobs(storage), + } + ) + return cases + + +def _compressed_cases() -> list[dict[str, Any]]: + """Compressed inputs: the TS client must decode Python's, and produce the + same encoding options and compression metadata.""" + variants: list[tuple[str, dict[str, Any], dict[str, Any]]] = [ + ("compressed", _config(compression=1), _config(compression=1)), + ("level_22", _config(compression=1, level=22), _config(compression=1)), + ("not_smaller", _config(compression=1), _config(compression=1)), + ("below_threshold", _config(compression=1_000_000), _config(compression=1)), + ( + "offloaded", + _config(compression=1, offloading=1), + _config(compression=1, offloading=1), + ), + ( + "compression_prevents_offloading", + _config(compression=1, offloading=1_000), + _config(compression=1, offloading=1_000), + ), + ( + "full", + _config("full", compression=1, offloading=1), + _config("full", compression=1, offloading=1), + ), + ( + "partial", + _config("partial", compression=1, offloading=1), + _config("partial", compression=1, offloading=1), + ), + ( + "rotated_key", + _config("full", compression=1, offloading=1, main="secondary"), + _config("full", offloading=1, main="main", secondary="secondary"), + ), + ] + cases = [] + for name, encoder_config, decoder_config in variants: + input_value: Any = {"d": "x"} if name == "not_smaller" else LARGE_INPUT + storage = InMemoryBlobStorage() + encoder = _encoder(encoder_config) + encoded, _ = _run( + name, + storage, + lambda: encoder.encode_network_input(input_value, CONTEXTS["plain"]), + ) + decoded, _ = _run( + name, + storage, + lambda: _encoder(decoder_config).decode_network_result( + encoded.model_dump(mode="json") + ), + ) + assert decoded == input_value + cases.append( + { + "name": name, + "encoder_config": encoder_config, + "decoder_config": decoder_config, + "context": _context("plain"), + "input": input_value, + "encoded": encoded.model_dump(mode="json"), + "blobs": _blobs(storage), + } + ) + return cases + + +def build_fixtures() -> dict[str, Any]: + return { + "keys": KEYS, + "encode_network_input": _encode_network_input_cases(), + "encode_payload_content": _encode_payload_content_cases(), + "compressed": _compressed_cases(), + } + + +def render_fixtures() -> str: + return json.dumps(build_fixtures(), indent=2, ensure_ascii=False) + "\n" + + +if __name__ == "__main__": + FIXTURE_PATH.parent.mkdir(parents=True, exist_ok=True) + FIXTURE_PATH.write_text(render_fixtures(), encoding="utf-8") + print(f"Wrote {FIXTURE_PATH}") diff --git a/src/mistralai/extra/tests/test_connector_auth.py b/src/mistralai/extra/tests/test_connector_auth.py new file mode 100644 index 000000000..e4f27d2db --- /dev/null +++ b/src/mistralai/extra/tests/test_connector_auth.py @@ -0,0 +1,258 @@ +import json +from collections.abc import AsyncIterator +from contextlib import asynccontextmanager +from typing import Any + +import httpx2 as httpx +import pytest + +from mistralai.client import Mistral +from mistralai.extra.workflows import connector_auth +from mistralai.extra.workflows.connector_auth import ( + ConnectorAuthTaskState, + execute_with_connector_auth_async, +) + +ROOT_ID = "root-exec" +CHILD_A_ID = "child-a-exec" +CHILD_B_ID = "child-b-exec" + + +def _event( + event_type: str, + workflow_exec_id: str, + attributes: dict[str, Any], +) -> dict[str, Any]: + is_root = workflow_exec_id == ROOT_ID + return { + "event_id": f"{event_type}-{workflow_exec_id}", + "event_timestamp": 0, + "root_workflow_exec_id": ROOT_ID, + "parent_workflow_exec_id": None if is_root else ROOT_ID, + "workflow_exec_id": workflow_exec_id, + "workflow_run_id": f"{workflow_exec_id}-run", + "workflow_name": "root-wf" if is_root else "child-wf", + "attributes": attributes, + "event_type": event_type, + } + + +def _completed(workflow_exec_id: str) -> dict[str, Any]: + return _event( + "WORKFLOW_EXECUTION_COMPLETED", + workflow_exec_id, + {"task_id": "t", "result": {"type": "json", "value": None}}, + ) + + +def _failed(workflow_exec_id: str) -> dict[str, Any]: + return _event( + "WORKFLOW_EXECUTION_FAILED", + workflow_exec_id, + {"task_id": "t", "failure": {"message": "boom"}}, + ) + + +def _canceled(workflow_exec_id: str) -> dict[str, Any]: + return _event( + "WORKFLOW_EXECUTION_CANCELED", + workflow_exec_id, + {"task_id": "t", "reason": "canceled"}, + ) + + +def _auth_requested(workflow_exec_id: str, connector_name: str) -> dict[str, Any]: + return _event( + "CUSTOM_TASK_STARTED", + workflow_exec_id, + { + "custom_task_id": f"auth-{connector_name}", + "custom_task_type": "connector_auth", + "payload": { + "type": "json", + "value": { + "connector_name": connector_name, + "connector_id": f"{connector_name}-id", + "auth_url": f"https://auth.example.test/{connector_name}", + }, + }, + }, + ) + + +class _FakeWorkflowsServer: + """Serves a fixed event log for ROOT_ID, replaying from ``start_seq``. + + Each stream request returns every remaining event and then closes, like a + server whose connection drops after the last available event. + """ + + def __init__(self, events: list[dict[str, Any]]) -> None: + self.events = events + self.stream_start_seqs: list[int] = [] + + def _sse_body(self, start_seq: int) -> bytes: + frames = [] + for seq, event in enumerate(self.events): + if seq < start_seq: + continue + payload = { + "stream": "workflows", + "data": event, + "workflow_context": { + "namespace": "default", + "workflow_name": event["workflow_name"], + "workflow_exec_id": event["workflow_exec_id"], + "root_workflow_exec_id": ROOT_ID, + }, + "broker_sequence": seq, + } + frames.append(f"event: workflow.event\ndata: {json.dumps(payload)}\n\n") + return "".join(frames).encode() + + def _execution(self, status: str) -> dict[str, Any]: + return { + "workflow_name": "root-wf", + "execution_id": ROOT_ID, + "root_execution_id": ROOT_ID, + "status": status, + "start_time": "2026-01-01T00:00:00Z", + "end_time": None, + "result": None, + } + + def handle(self, request: httpx.Request) -> httpx.Response: + path = request.url.path + if request.method == "POST" and path == "/v1/workflows/root-wf/execute": + return httpx.Response(200, json=self._execution("RUNNING")) + if path == "/v1/workflows/events/stream": + start_seq = int(request.url.params.get("start_seq", "0")) + self.stream_start_seqs.append(start_seq) + return httpx.Response( + 200, + headers={"content-type": "text/event-stream"}, + content=self._sse_body(start_seq), + ) + if path == f"/v1/workflows/executions/{ROOT_ID}": + return httpx.Response(200, json=self._execution("COMPLETED")) + return httpx.Response(404, json={"detail": f"unexpected {path}"}) + + +@asynccontextmanager +async def _mistral_client(server: _FakeWorkflowsServer) -> AsyncIterator[Mistral]: + async_client = httpx.AsyncClient(transport=httpx.MockTransport(server.handle)) + try: + yield Mistral( + api_key="test-api-key", + server_url="https://api.example.test", + async_client=async_client, + ) + finally: + await async_client.aclose() + + +@pytest.fixture(autouse=True) +def _no_reconnect_backoff(monkeypatch: pytest.MonkeyPatch) -> None: + async def no_sleep(_seconds: float) -> None: + return None + + monkeypatch.setattr(connector_auth.asyncio, "sleep", no_sleep) + + +async def _run(server: _FakeWorkflowsServer) -> list[ConnectorAuthTaskState]: + auth_requests: list[ConnectorAuthTaskState] = [] + + async def on_auth_required(state: ConnectorAuthTaskState) -> None: + auth_requests.append(state) + + async with _mistral_client(server) as client: + result = await execute_with_connector_auth_async( + client, + workflow_identifier="root-wf", + on_auth_required=on_auth_required, + polling_interval=0, + max_polling_attempts=1, + ) + assert result.status == "COMPLETED" + return auth_requests + + +@pytest.mark.asyncio +@pytest.mark.parametrize("child_end_event", [_completed, _failed, _canceled]) +async def test_child_end_event_does_not_stop_auth_handling(child_end_event) -> None: + # Child A ends before child B starts and asks for OAuth. + server = _FakeWorkflowsServer( + [ + child_end_event(CHILD_A_ID), + _auth_requested(CHILD_B_ID, "gmail"), + _completed(CHILD_B_ID), + _completed(ROOT_ID), + ] + ) + + auth_requests = await _run(server) + + assert [state.connector_name for state in auth_requests] == ["gmail"] + assert auth_requests[0].auth_url == "https://auth.example.test/gmail" + assert server.stream_start_seqs == [0] + + +@pytest.mark.asyncio +async def test_handles_auth_from_root_and_children() -> None: + server = _FakeWorkflowsServer( + [ + _auth_requested(ROOT_ID, "slack"), + _auth_requested(CHILD_A_ID, "drive"), + _completed(CHILD_A_ID), + _auth_requested(CHILD_B_ID, "gmail"), + _failed(CHILD_B_ID), + _completed(ROOT_ID), + ] + ) + + auth_requests = await _run(server) + + assert [state.connector_name for state in auth_requests] == [ + "slack", + "drive", + "gmail", + ] + + +@pytest.mark.asyncio +@pytest.mark.parametrize("root_end_event", [_completed, _failed, _canceled]) +async def test_root_end_event_stops_streaming(root_end_event) -> None: + # Anything after the root's end event must not be read. + server = _FakeWorkflowsServer( + [ + root_end_event(ROOT_ID), + _auth_requested(CHILD_B_ID, "gmail"), + ] + ) + + auth_requests = await _run(server) + + assert auth_requests == [] + assert server.stream_start_seqs == [0] + + +@pytest.mark.asyncio +async def test_reconnects_after_child_end_event_without_root_end() -> None: + # The connection drops right after a child's end event: the client must + # resume from the next sequence rather than treat the run as finished. + server = _FakeWorkflowsServer([_completed(CHILD_A_ID)]) + original_handle = server.handle + + def handle(request: httpx.Request) -> httpx.Response: + if len(server.stream_start_seqs) == 1: + server.events.extend( + [_auth_requested(CHILD_B_ID, "gmail"), _completed(ROOT_ID)] + ) + return original_handle(request) + + server.handle = handle # type: ignore[method-assign] + + auth_requests = await _run(server) + + assert [state.connector_name for state in auth_requests] == ["gmail"] + assert server.stream_start_seqs == [0, 1] diff --git a/src/mistralai/extra/tests/test_connectors_gateway.py b/src/mistralai/extra/tests/test_connectors_gateway.py index 11c76e2b8..66a55481c 100644 --- a/src/mistralai/extra/tests/test_connectors_gateway.py +++ b/src/mistralai/extra/tests/test_connectors_gateway.py @@ -6,7 +6,7 @@ import anyio import httpx2 as httpx import pytest -from mcp import ClientSession +from mcp import ClientSession, MCPError from mcp.types import TextContent from mistralai.client import Mistral @@ -255,6 +255,70 @@ async def handler(request: httpx.Request) -> httpx.Response: assert error.proxy_error == "destination_unavailable" assert error.proxy_status_code is None assert error.details == "upstream_unavailable" + assert error.__suppress_context__ + + +async def _upstream_mcp_handler(request: httpx.Request) -> httpx.Response: + """Serve MCP initialization and reject every tool call with a JSON-RPC error.""" + payload = json.loads(request.content) + method = payload["method"] + if method == "notifications/initialized": + return httpx.Response(202) + if method == "initialize": + body: dict[str, Any] = { + "result": { + "protocolVersion": payload["params"]["protocolVersion"], + "capabilities": {}, + "serverInfo": {"name": "upstream", "version": "test"}, + } + } + elif method == "tools/call": + body = {"error": {"code": -32602, "message": "Invalid params"}} + else: + raise AssertionError(f"Unexpected MCP method: {method}") + return httpx.Response( + 200, + headers={"content-type": "application/json"}, + json={"jsonrpc": "2.0", "id": payload["id"], **body}, + ) + + +@pytest.mark.asyncio +async def test_mcp_client_raises_upstream_mcp_error_unwrapped( + use_connector_transport: ConnectorClientTransport, +) -> None: + use_connector_transport(_upstream_mcp_handler) + + async with _mistral_client(_upstream_mcp_handler) as mistral: + with pytest.raises(MCPError) as exc_info: + with anyio.fail_after(1): + async with mistral.beta.connectors.mcp_client( + connector_id_or_name="github", + ) as client: + await client.call_tool("search", {"query": "mistral"}) + + assert exc_info.value.code == -32602 + assert exc_info.value.message == "Invalid params" + + +@pytest.mark.asyncio +async def test_mcp_client_reraises_caller_error_unchanged( + use_connector_transport: ConnectorClientTransport, +) -> None: + use_connector_transport(_upstream_mcp_handler) + cause = KeyError("result") + caller_error = ValueError("caller failure") + + async with _mistral_client(_upstream_mcp_handler) as mistral: + with pytest.raises(ValueError) as exc_info: + with anyio.fail_after(1): + async with mistral.beta.connectors.mcp_client( + connector_id_or_name="github", + ): + raise caller_error from cause + + assert exc_info.value is caller_error + assert exc_info.value.__cause__ is cause @pytest.mark.asyncio diff --git a/src/mistralai/extra/tests/test_workflow_encryption_parity.py b/src/mistralai/extra/tests/test_workflow_encryption_parity.py new file mode 100644 index 000000000..46ebf4f39 --- /dev/null +++ b/src/mistralai/extra/tests/test_workflow_encryption_parity.py @@ -0,0 +1,21 @@ +"""Guards the encryption fixtures replayed by the TS client's test suite.""" + +import pytest + +from mistralai.extra.tests.fixtures.workflow_encryption_parity import ( + FIXTURE_PATH, + render_fixtures, +) + + +@pytest.mark.skipif( + not FIXTURE_PATH.exists(), + reason="The TS client is only next to this client in the dashboard monorepo", +) +def test_workflow_encryption_parity_fixtures_are_up_to_date(): + assert render_fixtures() == FIXTURE_PATH.read_text(encoding="utf-8"), ( + "The Python client no longer produces the committed encryption fixtures. " + "Regenerate them with `uv run python -m " + "mistralai.extra.tests.fixtures.workflow_encryption_parity`, then make " + "sure the TS client tests still pass." + ) diff --git a/src/mistralai/extra/tests/test_workflow_offloading_parity.py b/src/mistralai/extra/tests/test_workflow_offloading_parity.py new file mode 100644 index 000000000..c62f5f948 --- /dev/null +++ b/src/mistralai/extra/tests/test_workflow_offloading_parity.py @@ -0,0 +1,23 @@ +"""Guards the offloading and compression fixtures replayed by the TS client's test suite.""" + +import pytest + +from mistralai.extra.tests.fixtures.workflow_offloading_parity import ( + FIXTURE_PATH, + render_fixtures, +) + + +@pytest.mark.skipif( + not FIXTURE_PATH.parent.exists(), + reason="The TS client is only next to this client in the dashboard monorepo", +) +def test_workflow_offloading_parity_fixtures_are_up_to_date(): + assert FIXTURE_PATH.exists() and render_fixtures() == FIXTURE_PATH.read_text( + encoding="utf-8" + ), ( + "The Python client no longer produces the committed offloading fixtures. " + "Regenerate them with `uv run python -m " + "mistralai.extra.tests.fixtures.workflow_offloading_parity`, then make " + "sure the TS client tests still pass." + ) diff --git a/src/mistralai/extra/workflows/connector_auth.py b/src/mistralai/extra/workflows/connector_auth.py index d90af47da..7ea58fe8f 100644 --- a/src/mistralai/extra/workflows/connector_auth.py +++ b/src/mistralai/extra/workflows/connector_auth.py @@ -203,7 +203,13 @@ async def _stream_and_handle_auth( last_seq = payload.broker_sequence + 1 event = payload.data - if isinstance(event, _TERMINAL_EVENT_TYPES): + # The stream includes child workflows, which emit their + # own terminal events. Only the root's ends the run; + # later children may still request auth. + if ( + isinstance(event, _TERMINAL_EVENT_TYPES) + and event.workflow_exec_id == exec_id + ): return if not isinstance(event, CustomTaskStartedResponse): diff --git a/uv.lock b/uv.lock index f97fe3428..f0013d338 100644 --- a/uv.lock +++ b/uv.lock @@ -1212,7 +1212,7 @@ wheels = [ [[package]] name = "mistralai" -version = "3.0.0" +version = "3.1.0" source = { editable = "." } dependencies = [ { name = "eval-type-backport" }, @@ -1458,140 +1458,183 @@ wheels = [ [[package]] name = "multidict" -version = "6.7.1" +version = "6.9.1" source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1a/c2/c2d94cbe6ac1753f3fc980da97b3d930efe1da3af3c9f5125354436c073d/multidict-6.7.1.tar.gz", hash = "sha256:ec6652a1bee61c53a3e5776b6049172c53b6aaba34f18c9ad04f82712bac623d", size = 102010, upload-time = "2026-01-26T02:46:45.979Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/84/0b/19348d4c98980c4851d2f943f8ebafdece2ae7ef737adcfa5994ce8e5f10/multidict-6.7.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c93c3db7ea657dd4637d57e74ab73de31bccefe144d3d4ce370052035bc85fb5", size = 77176, upload-time = "2026-01-26T02:42:59.784Z" }, - { url = "https://files.pythonhosted.org/packages/ef/04/9de3f8077852e3d438215c81e9b691244532d2e05b4270e89ce67b7d103c/multidict-6.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:974e72a2474600827abaeda71af0c53d9ebbc3c2eb7da37b37d7829ae31232d8", size = 44996, upload-time = "2026-01-26T02:43:01.674Z" }, - { url = "https://files.pythonhosted.org/packages/31/5c/08c7f7fe311f32e83f7621cd3f99d805f45519cd06fafb247628b861da7d/multidict-6.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdea2e7b2456cfb6694fb113066fd0ec7ea4d67e3a35e1f4cbeea0b448bf5872", size = 44631, upload-time = "2026-01-26T02:43:03.169Z" }, - { url = "https://files.pythonhosted.org/packages/b7/7f/0e3b1390ae772f27501199996b94b52ceeb64fe6f9120a32c6c3f6b781be/multidict-6.7.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:17207077e29342fdc2c9a82e4b306f1127bf1ea91f8b71e02d4798a70bb99991", size = 242561, upload-time = "2026-01-26T02:43:04.733Z" }, - { url = "https://files.pythonhosted.org/packages/dd/f4/8719f4f167586af317b69dd3e90f913416c91ca610cac79a45c53f590312/multidict-6.7.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d4f49cb5661344764e4c7c7973e92a47a59b8fc19b6523649ec9dc4960e58a03", size = 242223, upload-time = "2026-01-26T02:43:06.695Z" }, - { url = "https://files.pythonhosted.org/packages/47/ab/7c36164cce64a6ad19c6d9a85377b7178ecf3b89f8fd589c73381a5eedfd/multidict-6.7.1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a9fc4caa29e2e6ae408d1c450ac8bf19892c5fca83ee634ecd88a53332c59981", size = 222322, upload-time = "2026-01-26T02:43:08.472Z" }, - { url = "https://files.pythonhosted.org/packages/f5/79/a25add6fb38035b5337bc5734f296d9afc99163403bbcf56d4170f97eb62/multidict-6.7.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c5f0c21549ab432b57dcc82130f388d84ad8179824cc3f223d5e7cfbfd4143f6", size = 254005, upload-time = "2026-01-26T02:43:10.127Z" }, - { url = "https://files.pythonhosted.org/packages/4a/7b/64a87cf98e12f756fc8bd444b001232ffff2be37288f018ad0d3f0aae931/multidict-6.7.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7dfb78d966b2c906ae1d28ccf6e6712a3cd04407ee5088cd276fe8cb42186190", size = 251173, upload-time = "2026-01-26T02:43:11.731Z" }, - { url = "https://files.pythonhosted.org/packages/4b/ac/b605473de2bb404e742f2cc3583d12aedb2352a70e49ae8fce455b50c5aa/multidict-6.7.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9b0d9b91d1aa44db9c1f1ecd0d9d2ae610b2f4f856448664e01a3b35899f3f92", size = 243273, upload-time = "2026-01-26T02:43:13.063Z" }, - { url = "https://files.pythonhosted.org/packages/03/65/11492d6a0e259783720f3bc1d9ea55579a76f1407e31ed44045c99542004/multidict-6.7.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:dd96c01a9dcd4889dcfcf9eb5544ca0c77603f239e3ffab0524ec17aea9a93ee", size = 238956, upload-time = "2026-01-26T02:43:14.843Z" }, - { url = "https://files.pythonhosted.org/packages/5f/a7/7ee591302af64e7c196fb63fe856c788993c1372df765102bd0448e7e165/multidict-6.7.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:067343c68cd6612d375710f895337b3a98a033c94f14b9a99eff902f205424e2", size = 233477, upload-time = "2026-01-26T02:43:16.025Z" }, - { url = "https://files.pythonhosted.org/packages/9c/99/c109962d58756c35fd9992fed7f2355303846ea2ff054bb5f5e9d6b888de/multidict-6.7.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5884a04f4ff56c6120f6ccf703bdeb8b5079d808ba604d4d53aec0d55dc33568", size = 243615, upload-time = "2026-01-26T02:43:17.84Z" }, - { url = "https://files.pythonhosted.org/packages/d5/5f/1973e7c771c86e93dcfe1c9cc55a5481b610f6614acfc28c0d326fe6bfad/multidict-6.7.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8affcf1c98b82bc901702eb73b6947a1bfa170823c153fe8a47b5f5f02e48e40", size = 249930, upload-time = "2026-01-26T02:43:19.06Z" }, - { url = "https://files.pythonhosted.org/packages/5d/a5/f170fc2268c3243853580203378cd522446b2df632061e0a5409817854c7/multidict-6.7.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0d17522c37d03e85c8098ec8431636309b2682cf12e58f4dbc76121fb50e4962", size = 243807, upload-time = "2026-01-26T02:43:20.286Z" }, - { url = "https://files.pythonhosted.org/packages/de/01/73856fab6d125e5bc652c3986b90e8699a95e84b48d72f39ade6c0e74a8c/multidict-6.7.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:24c0cf81544ca5e17cfcb6e482e7a82cd475925242b308b890c9452a074d4505", size = 239103, upload-time = "2026-01-26T02:43:21.508Z" }, - { url = "https://files.pythonhosted.org/packages/e7/46/f1220bd9944d8aa40d8ccff100eeeee19b505b857b6f603d6078cb5315b0/multidict-6.7.1-cp310-cp310-win32.whl", hash = "sha256:d82dd730a95e6643802f4454b8fdecdf08667881a9c5670db85bc5a56693f122", size = 41416, upload-time = "2026-01-26T02:43:22.703Z" }, - { url = "https://files.pythonhosted.org/packages/68/00/9b38e272a770303692fc406c36e1a4c740f401522d5787691eb38a8925a8/multidict-6.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:cf37cbe5ced48d417ba045aca1b21bafca67489452debcde94778a576666a1df", size = 46022, upload-time = "2026-01-26T02:43:23.77Z" }, - { url = "https://files.pythonhosted.org/packages/64/65/d8d42490c02ee07b6bbe00f7190d70bb4738b3cce7629aaf9f213ef730dd/multidict-6.7.1-cp310-cp310-win_arm64.whl", hash = "sha256:59bc83d3f66b41dac1e7460aac1d196edc70c9ba3094965c467715a70ecb46db", size = 43238, upload-time = "2026-01-26T02:43:24.882Z" }, - { url = "https://files.pythonhosted.org/packages/ce/f1/a90635c4f88fb913fbf4ce660b83b7445b7a02615bda034b2f8eb38fd597/multidict-6.7.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7ff981b266af91d7b4b3793ca3382e53229088d193a85dfad6f5f4c27fc73e5d", size = 76626, upload-time = "2026-01-26T02:43:26.485Z" }, - { url = "https://files.pythonhosted.org/packages/a6/9b/267e64eaf6fc637a15b35f5de31a566634a2740f97d8d094a69d34f524a4/multidict-6.7.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:844c5bca0b5444adb44a623fb0a1310c2f4cd41f402126bb269cd44c9b3f3e1e", size = 44706, upload-time = "2026-01-26T02:43:27.607Z" }, - { url = "https://files.pythonhosted.org/packages/dd/a4/d45caf2b97b035c57267791ecfaafbd59c68212004b3842830954bb4b02e/multidict-6.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f2a0a924d4c2e9afcd7ec64f9de35fcd96915149b2216e1cb2c10a56df483855", size = 44356, upload-time = "2026-01-26T02:43:28.661Z" }, - { url = "https://files.pythonhosted.org/packages/fd/d2/0a36c8473f0cbaeadd5db6c8b72d15bbceeec275807772bfcd059bef487d/multidict-6.7.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8be1802715a8e892c784c0197c2ace276ea52702a0ede98b6310c8f255a5afb3", size = 244355, upload-time = "2026-01-26T02:43:31.165Z" }, - { url = "https://files.pythonhosted.org/packages/5d/16/8c65be997fd7dd311b7d39c7b6e71a0cb449bad093761481eccbbe4b42a2/multidict-6.7.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2e2d2ed645ea29f31c4c7ea1552fcfd7cb7ba656e1eafd4134a6620c9f5fdd9e", size = 246433, upload-time = "2026-01-26T02:43:32.581Z" }, - { url = "https://files.pythonhosted.org/packages/01/fb/4dbd7e848d2799c6a026ec88ad39cf2b8416aa167fcc903baa55ecaa045c/multidict-6.7.1-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:95922cee9a778659e91db6497596435777bd25ed116701a4c034f8e46544955a", size = 225376, upload-time = "2026-01-26T02:43:34.417Z" }, - { url = "https://files.pythonhosted.org/packages/b6/8a/4a3a6341eac3830f6053062f8fbc9a9e54407c80755b3f05bc427295c2d0/multidict-6.7.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6b83cabdc375ffaaa15edd97eb7c0c672ad788e2687004990074d7d6c9b140c8", size = 257365, upload-time = "2026-01-26T02:43:35.741Z" }, - { url = "https://files.pythonhosted.org/packages/f7/a2/dd575a69c1aa206e12d27d0770cdf9b92434b48a9ef0cd0d1afdecaa93c4/multidict-6.7.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:38fb49540705369bab8484db0689d86c0a33a0a9f2c1b197f506b71b4b6c19b0", size = 254747, upload-time = "2026-01-26T02:43:36.976Z" }, - { url = "https://files.pythonhosted.org/packages/5a/56/21b27c560c13822ed93133f08aa6372c53a8e067f11fbed37b4adcdac922/multidict-6.7.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:439cbebd499f92e9aa6793016a8acaa161dfa749ae86d20960189f5398a19144", size = 246293, upload-time = "2026-01-26T02:43:38.258Z" }, - { url = "https://files.pythonhosted.org/packages/5a/a4/23466059dc3854763423d0ad6c0f3683a379d97673b1b89ec33826e46728/multidict-6.7.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6d3bc717b6fe763b8be3f2bee2701d3c8eb1b2a8ae9f60910f1b2860c82b6c49", size = 242962, upload-time = "2026-01-26T02:43:40.034Z" }, - { url = "https://files.pythonhosted.org/packages/1f/67/51dd754a3524d685958001e8fa20a0f5f90a6a856e0a9dcabff69be3dbb7/multidict-6.7.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:619e5a1ac57986dbfec9f0b301d865dddf763696435e2962f6d9cf2fdff2bb71", size = 237360, upload-time = "2026-01-26T02:43:41.752Z" }, - { url = "https://files.pythonhosted.org/packages/64/3f/036dfc8c174934d4b55d86ff4f978e558b0e585cef70cfc1ad01adc6bf18/multidict-6.7.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0b38ebffd9be37c1170d33bc0f36f4f262e0a09bc1aac1c34c7aa51a7293f0b3", size = 245940, upload-time = "2026-01-26T02:43:43.042Z" }, - { url = "https://files.pythonhosted.org/packages/3d/20/6214d3c105928ebc353a1c644a6ef1408bc5794fcb4f170bb524a3c16311/multidict-6.7.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:10ae39c9cfe6adedcdb764f5e8411d4a92b055e35573a2eaa88d3323289ef93c", size = 253502, upload-time = "2026-01-26T02:43:44.371Z" }, - { url = "https://files.pythonhosted.org/packages/b1/e2/c653bc4ae1be70a0f836b82172d643fcf1dade042ba2676ab08ec08bff0f/multidict-6.7.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:25167cc263257660290fba06b9318d2026e3c910be240a146e1f66dd114af2b0", size = 247065, upload-time = "2026-01-26T02:43:45.745Z" }, - { url = "https://files.pythonhosted.org/packages/c8/11/a854b4154cd3bd8b1fd375e8a8ca9d73be37610c361543d56f764109509b/multidict-6.7.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:128441d052254f42989ef98b7b6a6ecb1e6f708aa962c7984235316db59f50fa", size = 241870, upload-time = "2026-01-26T02:43:47.054Z" }, - { url = "https://files.pythonhosted.org/packages/13/bf/9676c0392309b5fdae322333d22a829715b570edb9baa8016a517b55b558/multidict-6.7.1-cp311-cp311-win32.whl", hash = "sha256:d62b7f64ffde3b99d06b707a280db04fb3855b55f5a06df387236051d0668f4a", size = 41302, upload-time = "2026-01-26T02:43:48.753Z" }, - { url = "https://files.pythonhosted.org/packages/c9/68/f16a3a8ba6f7b6dc92a1f19669c0810bd2c43fc5a02da13b1cbf8e253845/multidict-6.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:bdbf9f3b332abd0cdb306e7c2113818ab1e922dc84b8f8fd06ec89ed2a19ab8b", size = 45981, upload-time = "2026-01-26T02:43:49.921Z" }, - { url = "https://files.pythonhosted.org/packages/ac/ad/9dd5305253fa00cd3c7555dbef69d5bf4133debc53b87ab8d6a44d411665/multidict-6.7.1-cp311-cp311-win_arm64.whl", hash = "sha256:b8c990b037d2fff2f4e33d3f21b9b531c5745b33a49a7d6dbe7a177266af44f6", size = 43159, upload-time = "2026-01-26T02:43:51.635Z" }, - { url = "https://files.pythonhosted.org/packages/8d/9c/f20e0e2cf80e4b2e4b1c365bf5fe104ee633c751a724246262db8f1a0b13/multidict-6.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a90f75c956e32891a4eda3639ce6dd86e87105271f43d43442a3aedf3cddf172", size = 76893, upload-time = "2026-01-26T02:43:52.754Z" }, - { url = "https://files.pythonhosted.org/packages/fe/cf/18ef143a81610136d3da8193da9d80bfe1cb548a1e2d1c775f26b23d024a/multidict-6.7.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fccb473e87eaa1382689053e4a4618e7ba7b9b9b8d6adf2027ee474597128cd", size = 45456, upload-time = "2026-01-26T02:43:53.893Z" }, - { url = "https://files.pythonhosted.org/packages/a9/65/1caac9d4cd32e8433908683446eebc953e82d22b03d10d41a5f0fefe991b/multidict-6.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b0fa96985700739c4c7853a43c0b3e169360d6855780021bfc6d0f1ce7c123e7", size = 43872, upload-time = "2026-01-26T02:43:55.041Z" }, - { url = "https://files.pythonhosted.org/packages/cf/3b/d6bd75dc4f3ff7c73766e04e705b00ed6dbbaccf670d9e05a12b006f5a21/multidict-6.7.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cb2a55f408c3043e42b40cc8eecd575afa27b7e0b956dfb190de0f8499a57a53", size = 251018, upload-time = "2026-01-26T02:43:56.198Z" }, - { url = "https://files.pythonhosted.org/packages/fd/80/c959c5933adedb9ac15152e4067c702a808ea183a8b64cf8f31af8ad3155/multidict-6.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb0ce7b2a32d09892b3dd6cc44877a0d02a33241fafca5f25c8b6b62374f8b75", size = 258883, upload-time = "2026-01-26T02:43:57.499Z" }, - { url = "https://files.pythonhosted.org/packages/86/85/7ed40adafea3d4f1c8b916e3b5cc3a8e07dfcdcb9cd72800f4ed3ca1b387/multidict-6.7.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c3a32d23520ee37bf327d1e1a656fec76a2edd5c038bf43eddfa0572ec49c60b", size = 242413, upload-time = "2026-01-26T02:43:58.755Z" }, - { url = "https://files.pythonhosted.org/packages/d2/57/b8565ff533e48595503c785f8361ff9a4fde4d67de25c207cd0ba3befd03/multidict-6.7.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9c90fed18bffc0189ba814749fdcc102b536e83a9f738a9003e569acd540a733", size = 268404, upload-time = "2026-01-26T02:44:00.216Z" }, - { url = "https://files.pythonhosted.org/packages/e0/50/9810c5c29350f7258180dfdcb2e52783a0632862eb334c4896ac717cebcb/multidict-6.7.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:da62917e6076f512daccfbbde27f46fed1c98fee202f0559adec8ee0de67f71a", size = 269456, upload-time = "2026-01-26T02:44:02.202Z" }, - { url = "https://files.pythonhosted.org/packages/f3/8d/5e5be3ced1d12966fefb5c4ea3b2a5b480afcea36406559442c6e31d4a48/multidict-6.7.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bfde23ef6ed9db7eaee6c37dcec08524cb43903c60b285b172b6c094711b3961", size = 256322, upload-time = "2026-01-26T02:44:03.56Z" }, - { url = "https://files.pythonhosted.org/packages/31/6e/d8a26d81ac166a5592782d208dd90dfdc0a7a218adaa52b45a672b46c122/multidict-6.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3758692429e4e32f1ba0df23219cd0b4fc0a52f476726fff9337d1a57676a582", size = 253955, upload-time = "2026-01-26T02:44:04.845Z" }, - { url = "https://files.pythonhosted.org/packages/59/4c/7c672c8aad41534ba619bcd4ade7a0dc87ed6b8b5c06149b85d3dd03f0cd/multidict-6.7.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:398c1478926eca669f2fd6a5856b6de9c0acf23a2cb59a14c0ba5844fa38077e", size = 251254, upload-time = "2026-01-26T02:44:06.133Z" }, - { url = "https://files.pythonhosted.org/packages/7b/bd/84c24de512cbafbdbc39439f74e967f19570ce7924e3007174a29c348916/multidict-6.7.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c102791b1c4f3ab36ce4101154549105a53dc828f016356b3e3bcae2e3a039d3", size = 252059, upload-time = "2026-01-26T02:44:07.518Z" }, - { url = "https://files.pythonhosted.org/packages/fa/ba/f5449385510825b73d01c2d4087bf6d2fccc20a2d42ac34df93191d3dd03/multidict-6.7.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a088b62bd733e2ad12c50dad01b7d0166c30287c166e137433d3b410add807a6", size = 263588, upload-time = "2026-01-26T02:44:09.382Z" }, - { url = "https://files.pythonhosted.org/packages/d7/11/afc7c677f68f75c84a69fe37184f0f82fce13ce4b92f49f3db280b7e92b3/multidict-6.7.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3d51ff4785d58d3f6c91bdbffcb5e1f7ddfda557727043aa20d20ec4f65e324a", size = 259642, upload-time = "2026-01-26T02:44:10.73Z" }, - { url = "https://files.pythonhosted.org/packages/2b/17/ebb9644da78c4ab36403739e0e6e0e30ebb135b9caf3440825001a0bddcb/multidict-6.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc5907494fccf3e7d3f94f95c91d6336b092b5fc83811720fae5e2765890dfba", size = 251377, upload-time = "2026-01-26T02:44:12.042Z" }, - { url = "https://files.pythonhosted.org/packages/ca/a4/840f5b97339e27846c46307f2530a2805d9d537d8b8bd416af031cad7fa0/multidict-6.7.1-cp312-cp312-win32.whl", hash = "sha256:28ca5ce2fd9716631133d0e9a9b9a745ad7f60bac2bccafb56aa380fc0b6c511", size = 41887, upload-time = "2026-01-26T02:44:14.245Z" }, - { url = "https://files.pythonhosted.org/packages/80/31/0b2517913687895f5904325c2069d6a3b78f66cc641a86a2baf75a05dcbb/multidict-6.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcee94dfbd638784645b066074b338bc9cc155d4b4bffa4adce1615c5a426c19", size = 46053, upload-time = "2026-01-26T02:44:15.371Z" }, - { url = "https://files.pythonhosted.org/packages/0c/5b/aba28e4ee4006ae4c7df8d327d31025d760ffa992ea23812a601d226e682/multidict-6.7.1-cp312-cp312-win_arm64.whl", hash = "sha256:ba0a9fb644d0c1a2194cf7ffb043bd852cea63a57f66fbd33959f7dae18517bf", size = 43307, upload-time = "2026-01-26T02:44:16.852Z" }, - { url = "https://files.pythonhosted.org/packages/f2/22/929c141d6c0dba87d3e1d38fbdf1ba8baba86b7776469f2bc2d3227a1e67/multidict-6.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2b41f5fed0ed563624f1c17630cb9941cf2309d4df00e494b551b5f3e3d67a23", size = 76174, upload-time = "2026-01-26T02:44:18.509Z" }, - { url = "https://files.pythonhosted.org/packages/c7/75/bc704ae15fee974f8fccd871305e254754167dce5f9e42d88a2def741a1d/multidict-6.7.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84e61e3af5463c19b67ced91f6c634effb89ef8bfc5ca0267f954451ed4bb6a2", size = 45116, upload-time = "2026-01-26T02:44:19.745Z" }, - { url = "https://files.pythonhosted.org/packages/79/76/55cd7186f498ed080a18440c9013011eb548f77ae1b297206d030eb1180a/multidict-6.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:935434b9853c7c112eee7ac891bc4cb86455aa631269ae35442cb316790c1445", size = 43524, upload-time = "2026-01-26T02:44:21.571Z" }, - { url = "https://files.pythonhosted.org/packages/e9/3c/414842ef8d5a1628d68edee29ba0e5bcf235dbfb3ccd3ea303a7fe8c72ff/multidict-6.7.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:432feb25a1cb67fe82a9680b4d65fb542e4635cb3166cd9c01560651ad60f177", size = 249368, upload-time = "2026-01-26T02:44:22.803Z" }, - { url = "https://files.pythonhosted.org/packages/f6/32/befed7f74c458b4a525e60519fe8d87eef72bb1e99924fa2b0f9d97a221e/multidict-6.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e82d14e3c948952a1a85503817e038cba5905a3352de76b9a465075d072fba23", size = 256952, upload-time = "2026-01-26T02:44:24.306Z" }, - { url = "https://files.pythonhosted.org/packages/03/d6/c878a44ba877f366630c860fdf74bfb203c33778f12b6ac274936853c451/multidict-6.7.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4cfb48c6ea66c83bcaaf7e4dfa7ec1b6bbcf751b7db85a328902796dfde4c060", size = 240317, upload-time = "2026-01-26T02:44:25.772Z" }, - { url = "https://files.pythonhosted.org/packages/68/49/57421b4d7ad2e9e60e25922b08ceb37e077b90444bde6ead629095327a6f/multidict-6.7.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1d540e51b7e8e170174555edecddbd5538105443754539193e3e1061864d444d", size = 267132, upload-time = "2026-01-26T02:44:27.648Z" }, - { url = "https://files.pythonhosted.org/packages/b7/fe/ec0edd52ddbcea2a2e89e174f0206444a61440b40f39704e64dc807a70bd/multidict-6.7.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:273d23f4b40f3dce4d6c8a821c741a86dec62cded82e1175ba3d99be128147ed", size = 268140, upload-time = "2026-01-26T02:44:29.588Z" }, - { url = "https://files.pythonhosted.org/packages/b0/73/6e1b01cbeb458807aa0831742232dbdd1fa92bfa33f52a3f176b4ff3dc11/multidict-6.7.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d624335fd4fa1c08a53f8b4be7676ebde19cd092b3895c421045ca87895b429", size = 254277, upload-time = "2026-01-26T02:44:30.902Z" }, - { url = "https://files.pythonhosted.org/packages/6a/b2/5fb8c124d7561a4974c342bc8c778b471ebbeb3cc17df696f034a7e9afe7/multidict-6.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:12fad252f8b267cc75b66e8fc51b3079604e8d43a75428ffe193cd9e2195dfd6", size = 252291, upload-time = "2026-01-26T02:44:32.31Z" }, - { url = "https://files.pythonhosted.org/packages/5a/96/51d4e4e06bcce92577fcd488e22600bd38e4fd59c20cb49434d054903bd2/multidict-6.7.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:03ede2a6ffbe8ef936b92cb4529f27f42be7f56afcdab5ab739cd5f27fb1cbf9", size = 250156, upload-time = "2026-01-26T02:44:33.734Z" }, - { url = "https://files.pythonhosted.org/packages/db/6b/420e173eec5fba721a50e2a9f89eda89d9c98fded1124f8d5c675f7a0c0f/multidict-6.7.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:90efbcf47dbe33dcf643a1e400d67d59abeac5db07dc3f27d6bdeae497a2198c", size = 249742, upload-time = "2026-01-26T02:44:35.222Z" }, - { url = "https://files.pythonhosted.org/packages/44/a3/ec5b5bd98f306bc2aa297b8c6f11a46714a56b1e6ef5ebda50a4f5d7c5fb/multidict-6.7.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5c4b9bfc148f5a91be9244d6264c53035c8a0dcd2f51f1c3c6e30e30ebaa1c84", size = 262221, upload-time = "2026-01-26T02:44:36.604Z" }, - { url = "https://files.pythonhosted.org/packages/cd/f7/e8c0d0da0cd1e28d10e624604e1a36bcc3353aaebdfdc3a43c72bc683a12/multidict-6.7.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:401c5a650f3add2472d1d288c26deebc540f99e2fb83e9525007a74cd2116f1d", size = 258664, upload-time = "2026-01-26T02:44:38.008Z" }, - { url = "https://files.pythonhosted.org/packages/52/da/151a44e8016dd33feed44f730bd856a66257c1ee7aed4f44b649fb7edeb3/multidict-6.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:97891f3b1b3ffbded884e2916cacf3c6fc87b66bb0dde46f7357404750559f33", size = 249490, upload-time = "2026-01-26T02:44:39.386Z" }, - { url = "https://files.pythonhosted.org/packages/87/af/a3b86bf9630b732897f6fc3f4c4714b90aa4361983ccbdcd6c0339b21b0c/multidict-6.7.1-cp313-cp313-win32.whl", hash = "sha256:e1c5988359516095535c4301af38d8a8838534158f649c05dd1050222321bcb3", size = 41695, upload-time = "2026-01-26T02:44:41.318Z" }, - { url = "https://files.pythonhosted.org/packages/b2/35/e994121b0e90e46134673422dd564623f93304614f5d11886b1b3e06f503/multidict-6.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:960c83bf01a95b12b08fd54324a4eb1d5b52c88932b5cba5d6e712bb3ed12eb5", size = 45884, upload-time = "2026-01-26T02:44:42.488Z" }, - { url = "https://files.pythonhosted.org/packages/ca/61/42d3e5dbf661242a69c97ea363f2d7b46c567da8eadef8890022be6e2ab0/multidict-6.7.1-cp313-cp313-win_arm64.whl", hash = "sha256:563fe25c678aaba333d5399408f5ec3c383ca5b663e7f774dd179a520b8144df", size = 43122, upload-time = "2026-01-26T02:44:43.664Z" }, - { url = "https://files.pythonhosted.org/packages/6d/b3/e6b21c6c4f314bb956016b0b3ef2162590a529b84cb831c257519e7fde44/multidict-6.7.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c76c4bec1538375dad9d452d246ca5368ad6e1c9039dadcf007ae59c70619ea1", size = 83175, upload-time = "2026-01-26T02:44:44.894Z" }, - { url = "https://files.pythonhosted.org/packages/fb/76/23ecd2abfe0957b234f6c960f4ade497f55f2c16aeb684d4ecdbf1c95791/multidict-6.7.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:57b46b24b5d5ebcc978da4ec23a819a9402b4228b8a90d9c656422b4bdd8a963", size = 48460, upload-time = "2026-01-26T02:44:46.106Z" }, - { url = "https://files.pythonhosted.org/packages/c4/57/a0ed92b23f3a042c36bc4227b72b97eca803f5f1801c1ab77c8a212d455e/multidict-6.7.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e954b24433c768ce78ab7929e84ccf3422e46deb45a4dc9f93438f8217fa2d34", size = 46930, upload-time = "2026-01-26T02:44:47.278Z" }, - { url = "https://files.pythonhosted.org/packages/b5/66/02ec7ace29162e447f6382c495dc95826bf931d3818799bbef11e8f7df1a/multidict-6.7.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3bd231490fa7217cc832528e1cd8752a96f0125ddd2b5749390f7c3ec8721b65", size = 242582, upload-time = "2026-01-26T02:44:48.604Z" }, - { url = "https://files.pythonhosted.org/packages/58/18/64f5a795e7677670e872673aca234162514696274597b3708b2c0d276cce/multidict-6.7.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:253282d70d67885a15c8a7716f3a73edf2d635793ceda8173b9ecc21f2fb8292", size = 250031, upload-time = "2026-01-26T02:44:50.544Z" }, - { url = "https://files.pythonhosted.org/packages/c8/ed/e192291dbbe51a8290c5686f482084d31bcd9d09af24f63358c3d42fd284/multidict-6.7.1-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b4c48648d7649c9335cf1927a8b87fa692de3dcb15faa676c6a6f1f1aabda43", size = 228596, upload-time = "2026-01-26T02:44:51.951Z" }, - { url = "https://files.pythonhosted.org/packages/1e/7e/3562a15a60cf747397e7f2180b0a11dc0c38d9175a650e75fa1b4d325e15/multidict-6.7.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:98bc624954ec4d2c7cb074b8eefc2b5d0ce7d482e410df446414355d158fe4ca", size = 257492, upload-time = "2026-01-26T02:44:53.902Z" }, - { url = "https://files.pythonhosted.org/packages/24/02/7d0f9eae92b5249bb50ac1595b295f10e263dd0078ebb55115c31e0eaccd/multidict-6.7.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1b99af4d9eec0b49927b4402bcbb58dea89d3e0db8806a4086117019939ad3dd", size = 255899, upload-time = "2026-01-26T02:44:55.316Z" }, - { url = "https://files.pythonhosted.org/packages/00/e3/9b60ed9e23e64c73a5cde95269ef1330678e9c6e34dd4eb6b431b85b5a10/multidict-6.7.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6aac4f16b472d5b7dc6f66a0d49dd57b0e0902090be16594dc9ebfd3d17c47e7", size = 247970, upload-time = "2026-01-26T02:44:56.783Z" }, - { url = "https://files.pythonhosted.org/packages/3e/06/538e58a63ed5cfb0bd4517e346b91da32fde409d839720f664e9a4ae4f9d/multidict-6.7.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:21f830fe223215dffd51f538e78c172ed7c7f60c9b96a2bf05c4848ad49921c3", size = 245060, upload-time = "2026-01-26T02:44:58.195Z" }, - { url = "https://files.pythonhosted.org/packages/b2/2f/d743a3045a97c895d401e9bd29aaa09b94f5cbdf1bd561609e5a6c431c70/multidict-6.7.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f5dd81c45b05518b9aa4da4aa74e1c93d715efa234fd3e8a179df611cc85e5f4", size = 235888, upload-time = "2026-01-26T02:44:59.57Z" }, - { url = "https://files.pythonhosted.org/packages/38/83/5a325cac191ab28b63c52f14f1131f3b0a55ba3b9aa65a6d0bf2a9b921a0/multidict-6.7.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:eb304767bca2bb92fb9c5bd33cedc95baee5bb5f6c88e63706533a1c06ad08c8", size = 243554, upload-time = "2026-01-26T02:45:01.054Z" }, - { url = "https://files.pythonhosted.org/packages/20/1f/9d2327086bd15da2725ef6aae624208e2ef828ed99892b17f60c344e57ed/multidict-6.7.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c9035dde0f916702850ef66460bc4239d89d08df4d02023a5926e7446724212c", size = 252341, upload-time = "2026-01-26T02:45:02.484Z" }, - { url = "https://files.pythonhosted.org/packages/e8/2c/2a1aa0280cf579d0f6eed8ee5211c4f1730bd7e06c636ba2ee6aafda302e/multidict-6.7.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:af959b9beeb66c822380f222f0e0a1889331597e81f1ded7f374f3ecb0fd6c52", size = 246391, upload-time = "2026-01-26T02:45:03.862Z" }, - { url = "https://files.pythonhosted.org/packages/e5/03/7ca022ffc36c5a3f6e03b179a5ceb829be9da5783e6fe395f347c0794680/multidict-6.7.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:41f2952231456154ee479651491e94118229844dd7226541788be783be2b5108", size = 243422, upload-time = "2026-01-26T02:45:05.296Z" }, - { url = "https://files.pythonhosted.org/packages/dc/1d/b31650eab6c5778aceed46ba735bd97f7c7d2f54b319fa916c0f96e7805b/multidict-6.7.1-cp313-cp313t-win32.whl", hash = "sha256:df9f19c28adcb40b6aae30bbaa1478c389efd50c28d541d76760199fc1037c32", size = 47770, upload-time = "2026-01-26T02:45:06.754Z" }, - { url = "https://files.pythonhosted.org/packages/ac/5b/2d2d1d522e51285bd61b1e20df8f47ae1a9d80839db0b24ea783b3832832/multidict-6.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:d54ecf9f301853f2c5e802da559604b3e95bb7a3b01a9c295c6ee591b9882de8", size = 53109, upload-time = "2026-01-26T02:45:08.044Z" }, - { url = "https://files.pythonhosted.org/packages/3d/a3/cc409ba012c83ca024a308516703cf339bdc4b696195644a7215a5164a24/multidict-6.7.1-cp313-cp313t-win_arm64.whl", hash = "sha256:5a37ca18e360377cfda1d62f5f382ff41f2b8c4ccb329ed974cc2e1643440118", size = 45573, upload-time = "2026-01-26T02:45:09.349Z" }, - { url = "https://files.pythonhosted.org/packages/91/cc/db74228a8be41884a567e88a62fd589a913708fcf180d029898c17a9a371/multidict-6.7.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8f333ec9c5eb1b7105e3b84b53141e66ca05a19a605368c55450b6ba208cb9ee", size = 75190, upload-time = "2026-01-26T02:45:10.651Z" }, - { url = "https://files.pythonhosted.org/packages/d5/22/492f2246bb5b534abd44804292e81eeaf835388901f0c574bac4eeec73c5/multidict-6.7.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a407f13c188f804c759fc6a9f88286a565c242a76b27626594c133b82883b5c2", size = 44486, upload-time = "2026-01-26T02:45:11.938Z" }, - { url = "https://files.pythonhosted.org/packages/f1/4f/733c48f270565d78b4544f2baddc2fb2a245e5a8640254b12c36ac7ac68e/multidict-6.7.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0e161ddf326db5577c3a4cc2d8648f81456e8a20d40415541587a71620d7a7d1", size = 43219, upload-time = "2026-01-26T02:45:14.346Z" }, - { url = "https://files.pythonhosted.org/packages/24/bb/2c0c2287963f4259c85e8bcbba9182ced8d7fca65c780c38e99e61629d11/multidict-6.7.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1e3a8bb24342a8201d178c3b4984c26ba81a577c80d4d525727427460a50c22d", size = 245132, upload-time = "2026-01-26T02:45:15.712Z" }, - { url = "https://files.pythonhosted.org/packages/a7/f9/44d4b3064c65079d2467888794dea218d1601898ac50222ab8a9a8094460/multidict-6.7.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97231140a50f5d447d3164f994b86a0bed7cd016e2682f8650d6a9158e14fd31", size = 252420, upload-time = "2026-01-26T02:45:17.293Z" }, - { url = "https://files.pythonhosted.org/packages/8b/13/78f7275e73fa17b24c9a51b0bd9d73ba64bb32d0ed51b02a746eb876abe7/multidict-6.7.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6b10359683bd8806a200fd2909e7c8ca3a7b24ec1d8132e483d58e791d881048", size = 233510, upload-time = "2026-01-26T02:45:19.356Z" }, - { url = "https://files.pythonhosted.org/packages/4b/25/8167187f62ae3cbd52da7893f58cb036b47ea3fb67138787c76800158982/multidict-6.7.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:283ddac99f7ac25a4acadbf004cb5ae34480bbeb063520f70ce397b281859362", size = 264094, upload-time = "2026-01-26T02:45:20.834Z" }, - { url = "https://files.pythonhosted.org/packages/a1/e7/69a3a83b7b030cf283fb06ce074a05a02322359783424d7edf0f15fe5022/multidict-6.7.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:538cec1e18c067d0e6103aa9a74f9e832904c957adc260e61cd9d8cf0c3b3d37", size = 260786, upload-time = "2026-01-26T02:45:22.818Z" }, - { url = "https://files.pythonhosted.org/packages/fe/3b/8ec5074bcfc450fe84273713b4b0a0dd47c0249358f5d82eb8104ffe2520/multidict-6.7.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7eee46ccb30ff48a1e35bb818cc90846c6be2b68240e42a78599166722cea709", size = 248483, upload-time = "2026-01-26T02:45:24.368Z" }, - { url = "https://files.pythonhosted.org/packages/48/5a/d5a99e3acbca0e29c5d9cba8f92ceb15dce78bab963b308ae692981e3a5d/multidict-6.7.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa263a02f4f2dd2d11a7b1bb4362aa7cb1049f84a9235d31adf63f30143469a0", size = 248403, upload-time = "2026-01-26T02:45:25.982Z" }, - { url = "https://files.pythonhosted.org/packages/35/48/e58cd31f6c7d5102f2a4bf89f96b9cf7e00b6c6f3d04ecc44417c00a5a3c/multidict-6.7.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:2e1425e2f99ec5bd36c15a01b690a1a2456209c5deed58f95469ffb46039ccbb", size = 240315, upload-time = "2026-01-26T02:45:27.487Z" }, - { url = "https://files.pythonhosted.org/packages/94/33/1cd210229559cb90b6786c30676bb0c58249ff42f942765f88793b41fdce/multidict-6.7.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:497394b3239fc6f0e13a78a3e1b61296e72bf1c5f94b4c4eb80b265c37a131cd", size = 245528, upload-time = "2026-01-26T02:45:28.991Z" }, - { url = "https://files.pythonhosted.org/packages/64/f2/6e1107d226278c876c783056b7db43d800bb64c6131cec9c8dfb6903698e/multidict-6.7.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:233b398c29d3f1b9676b4b6f75c518a06fcb2ea0b925119fb2c1bc35c05e1601", size = 258784, upload-time = "2026-01-26T02:45:30.503Z" }, - { url = "https://files.pythonhosted.org/packages/4d/c1/11f664f14d525e4a1b5327a82d4de61a1db604ab34c6603bb3c2cc63ad34/multidict-6.7.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:93b1818e4a6e0930454f0f2af7dfce69307ca03cdcfb3739bf4d91241967b6c1", size = 251980, upload-time = "2026-01-26T02:45:32.603Z" }, - { url = "https://files.pythonhosted.org/packages/e1/9f/75a9ac888121d0c5bbd4ecf4eead45668b1766f6baabfb3b7f66a410e231/multidict-6.7.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f33dc2a3abe9249ea5d8360f969ec7f4142e7ac45ee7014d8f8d5acddf178b7b", size = 243602, upload-time = "2026-01-26T02:45:34.043Z" }, - { url = "https://files.pythonhosted.org/packages/9a/e7/50bf7b004cc8525d80dbbbedfdc7aed3e4c323810890be4413e589074032/multidict-6.7.1-cp314-cp314-win32.whl", hash = "sha256:3ab8b9d8b75aef9df299595d5388b14530839f6422333357af1339443cff777d", size = 40930, upload-time = "2026-01-26T02:45:36.278Z" }, - { url = "https://files.pythonhosted.org/packages/e0/bf/52f25716bbe93745595800f36fb17b73711f14da59ed0bb2eba141bc9f0f/multidict-6.7.1-cp314-cp314-win_amd64.whl", hash = "sha256:5e01429a929600e7dab7b166062d9bb54a5eed752384c7384c968c2afab8f50f", size = 45074, upload-time = "2026-01-26T02:45:37.546Z" }, - { url = "https://files.pythonhosted.org/packages/97/ab/22803b03285fa3a525f48217963da3a65ae40f6a1b6f6cf2768879e208f9/multidict-6.7.1-cp314-cp314-win_arm64.whl", hash = "sha256:4885cb0e817aef5d00a2e8451d4665c1808378dc27c2705f1bf4ef8505c0d2e5", size = 42471, upload-time = "2026-01-26T02:45:38.889Z" }, - { url = "https://files.pythonhosted.org/packages/e0/6d/f9293baa6146ba9507e360ea0292b6422b016907c393e2f63fc40ab7b7b5/multidict-6.7.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0458c978acd8e6ea53c81eefaddbbee9c6c5e591f41b3f5e8e194780fe026581", size = 82401, upload-time = "2026-01-26T02:45:40.254Z" }, - { url = "https://files.pythonhosted.org/packages/7a/68/53b5494738d83558d87c3c71a486504d8373421c3e0dbb6d0db48ad42ee0/multidict-6.7.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:c0abd12629b0af3cf590982c0b413b1e7395cd4ec026f30986818ab95bfaa94a", size = 48143, upload-time = "2026-01-26T02:45:41.635Z" }, - { url = "https://files.pythonhosted.org/packages/37/e8/5284c53310dcdc99ce5d66563f6e5773531a9b9fe9ec7a615e9bc306b05f/multidict-6.7.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:14525a5f61d7d0c94b368a42cff4c9a4e7ba2d52e2672a7b23d84dc86fb02b0c", size = 46507, upload-time = "2026-01-26T02:45:42.99Z" }, - { url = "https://files.pythonhosted.org/packages/e4/fc/6800d0e5b3875568b4083ecf5f310dcf91d86d52573160834fb4bfcf5e4f/multidict-6.7.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:17307b22c217b4cf05033dabefe68255a534d637c6c9b0cc8382718f87be4262", size = 239358, upload-time = "2026-01-26T02:45:44.376Z" }, - { url = "https://files.pythonhosted.org/packages/41/75/4ad0973179361cdf3a113905e6e088173198349131be2b390f9fa4da5fc6/multidict-6.7.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a7e590ff876a3eaf1c02a4dfe0724b6e69a9e9de6d8f556816f29c496046e59", size = 246884, upload-time = "2026-01-26T02:45:47.167Z" }, - { url = "https://files.pythonhosted.org/packages/c3/9c/095bb28b5da139bd41fb9a5d5caff412584f377914bd8787c2aa98717130/multidict-6.7.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5fa6a95dfee63893d80a34758cd0e0c118a30b8dcb46372bf75106c591b77889", size = 225878, upload-time = "2026-01-26T02:45:48.698Z" }, - { url = "https://files.pythonhosted.org/packages/07/d0/c0a72000243756e8f5a277b6b514fa005f2c73d481b7d9e47cd4568aa2e4/multidict-6.7.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a0543217a6a017692aa6ae5cc39adb75e587af0f3a82288b1492eb73dd6cc2a4", size = 253542, upload-time = "2026-01-26T02:45:50.164Z" }, - { url = "https://files.pythonhosted.org/packages/c0/6b/f69da15289e384ecf2a68837ec8b5ad8c33e973aa18b266f50fe55f24b8c/multidict-6.7.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f99fe611c312b3c1c0ace793f92464d8cd263cc3b26b5721950d977b006b6c4d", size = 252403, upload-time = "2026-01-26T02:45:51.779Z" }, - { url = "https://files.pythonhosted.org/packages/a2/76/b9669547afa5a1a25cd93eaca91c0da1c095b06b6d2d8ec25b713588d3a1/multidict-6.7.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9004d8386d133b7e6135679424c91b0b854d2d164af6ea3f289f8f2761064609", size = 244889, upload-time = "2026-01-26T02:45:53.27Z" }, - { url = "https://files.pythonhosted.org/packages/7e/a9/a50d2669e506dad33cfc45b5d574a205587b7b8a5f426f2fbb2e90882588/multidict-6.7.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e628ef0e6859ffd8273c69412a2465c4be4a9517d07261b33334b5ec6f3c7489", size = 241982, upload-time = "2026-01-26T02:45:54.919Z" }, - { url = "https://files.pythonhosted.org/packages/c5/bb/1609558ad8b456b4827d3c5a5b775c93b87878fd3117ed3db3423dfbce1b/multidict-6.7.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:841189848ba629c3552035a6a7f5bf3b02eb304e9fea7492ca220a8eda6b0e5c", size = 232415, upload-time = "2026-01-26T02:45:56.981Z" }, - { url = "https://files.pythonhosted.org/packages/d8/59/6f61039d2aa9261871e03ab9dc058a550d240f25859b05b67fd70f80d4b3/multidict-6.7.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:ce1bbd7d780bb5a0da032e095c951f7014d6b0a205f8318308140f1a6aba159e", size = 240337, upload-time = "2026-01-26T02:45:58.698Z" }, - { url = "https://files.pythonhosted.org/packages/a1/29/fdc6a43c203890dc2ae9249971ecd0c41deaedfe00d25cb6564b2edd99eb/multidict-6.7.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b26684587228afed0d50cf804cc71062cc9c1cdf55051c4c6345d372947b268c", size = 248788, upload-time = "2026-01-26T02:46:00.862Z" }, - { url = "https://files.pythonhosted.org/packages/a9/14/a153a06101323e4cf086ecee3faadba52ff71633d471f9685c42e3736163/multidict-6.7.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:9f9af11306994335398293f9958071019e3ab95e9a707dc1383a35613f6abcb9", size = 242842, upload-time = "2026-01-26T02:46:02.824Z" }, - { url = "https://files.pythonhosted.org/packages/41/5f/604ae839e64a4a6efc80db94465348d3b328ee955e37acb24badbcd24d83/multidict-6.7.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b4938326284c4f1224178a560987b6cf8b4d38458b113d9b8c1db1a836e640a2", size = 240237, upload-time = "2026-01-26T02:46:05.898Z" }, - { url = "https://files.pythonhosted.org/packages/5f/60/c3a5187bf66f6fb546ff4ab8fb5a077cbdd832d7b1908d4365c7f74a1917/multidict-6.7.1-cp314-cp314t-win32.whl", hash = "sha256:98655c737850c064a65e006a3df7c997cd3b220be4ec8fe26215760b9697d4d7", size = 48008, upload-time = "2026-01-26T02:46:07.468Z" }, - { url = "https://files.pythonhosted.org/packages/0c/f7/addf1087b860ac60e6f382240f64fb99f8bfb532bb06f7c542b83c29ca61/multidict-6.7.1-cp314-cp314t-win_amd64.whl", hash = "sha256:497bde6223c212ba11d462853cfa4f0ae6ef97465033e7dc9940cdb3ab5b48e5", size = 53542, upload-time = "2026-01-26T02:46:08.809Z" }, - { url = "https://files.pythonhosted.org/packages/4c/81/4629d0aa32302ef7b2ec65c75a728cc5ff4fa410c50096174c1632e70b3e/multidict-6.7.1-cp314-cp314t-win_arm64.whl", hash = "sha256:2bbd113e0d4af5db41d5ebfe9ccaff89de2120578164f86a5d17d5a576d1e5b2", size = 44719, upload-time = "2026-01-26T02:46:11.146Z" }, - { url = "https://files.pythonhosted.org/packages/81/08/7036c080d7117f28a4af526d794aab6a84463126db031b007717c1a6676e/multidict-6.7.1-py3-none-any.whl", hash = "sha256:55d97cc6dae627efa6a6e548885712d4864b81110ac76fa4e534c03819fa4a56", size = 12319, upload-time = "2026-01-26T02:46:44.004Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/d6/99/1d4d69c3512d0ddbfa3a1b69cfd9a151012ab2eb4eabbb096201b1f0b7d8/multidict-6.9.1.tar.gz", hash = "sha256:0f06e60fa190aa7abd0914c2a766736fdc8e9f34878c4346338534b73d1b20e2", size = 182404, upload-time = "2026-09-21T17:59:05.362Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/1c/fb2114207afc7f00ab9897ae5beeee27de5ec58ea8b9623e879f2c56f003/multidict-6.9.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:aef74e9beabbd6c4aafc091dabff86d046ccf013ce1e4396c0fbb01b4cad9de8", size = 97307, upload-time = "2026-09-21T17:54:14.957Z" }, + { url = "https://files.pythonhosted.org/packages/b7/23/1ab8c7349adbb30c8cf41b88b0794740df8ea9f7de2e382da040a2f5bd8e/multidict-6.9.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1ca5ebe6d454f1e5496cf052386a559f1080bf2de75bf327ebca0a6003b79f19", size = 58830, upload-time = "2026-09-21T17:54:16.261Z" }, + { url = "https://files.pythonhosted.org/packages/e0/89/b845535014a9ad50537ca50204aaf6351c5368822a3acd9da854fb2a5a34/multidict-6.9.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02f6d0c4b70f783305e73f9944d8efe6be1022550f0974ba0ae9d8893c0350fa", size = 57645, upload-time = "2026-09-21T17:54:17.491Z" }, + { url = "https://files.pythonhosted.org/packages/fe/4f/28ebb40a6f8e8aa7be78bcbe4bf9a1ac9518c40ef88accf2d4cd6ed7a7e0/multidict-6.9.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8050e75af7e4c6e2d5260b84eeedb618f3e452e66473432e085b5d1b81429299", size = 301535, upload-time = "2026-09-21T17:54:18.946Z" }, + { url = "https://files.pythonhosted.org/packages/33/51/0de5fc980df34d1ffed9ef68f60ce86c2d4baa3d422598a53f8730c56757/multidict-6.9.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4736d350371337825cac1793c9f7c40701c32a03912548c2a7608e51679cbb96", size = 298796, upload-time = "2026-09-21T17:54:20.52Z" }, + { url = "https://files.pythonhosted.org/packages/55/58/dd86067bdd2e961fdee8ec659fabc50f4e76403616b508714ec2686b0a49/multidict-6.9.1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:02fe09dc197b8ae7e355371e51e5dce2f39060cd5a8badf94904527e23a3f188", size = 282392, upload-time = "2026-09-21T17:54:21.86Z" }, + { url = "https://files.pythonhosted.org/packages/2f/52/5464a2675579e3adb48b7cd4707a59da499660f0e22c024bc7281d2d9bdf/multidict-6.9.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ad4528cdce058b684f75fad1faf4a6a6c992fe2f08376370ca66e4ce5916a84a", size = 314538, upload-time = "2026-09-21T17:54:23.366Z" }, + { url = "https://files.pythonhosted.org/packages/d3/69/7f2b3fafe064181669157ce872a097b08a0546fb6fd2481e8c5604b47ec3/multidict-6.9.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8885e3808aedbd6725b921fb67dacaae0678933561ddd47c2b01315198c70e2e", size = 315675, upload-time = "2026-09-21T17:54:24.808Z" }, + { url = "https://files.pythonhosted.org/packages/bd/53/f65ed68b96eea2b4f6fa4f9031bdfccd8f3097c429e3d371c545d1c40ca4/multidict-6.9.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d3b6e6840421c83ccb60398e333b44f910b0907bb409597685ab2eedd1e22eab", size = 303685, upload-time = "2026-09-21T17:54:26.236Z" }, + { url = "https://files.pythonhosted.org/packages/1a/5f/ade05795c6fb9adfccd61695a0f0509bc793583f589c4b1b87f27215a139/multidict-6.9.1-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c9648ed33dc8179e4ec04bbc73bd7f0038e1e81217a69467f61f02a78bf07e88", size = 280306, upload-time = "2026-09-21T17:54:27.685Z" }, + { url = "https://files.pythonhosted.org/packages/60/b2/c996349a61e0f43c7c95877943a67476261bf906ff993670afbd33ff5bf4/multidict-6.9.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d9d6544790ba50438a9c1a903c3c4afb1ec8a7832db5518549275b40ef0dd4b1", size = 291691, upload-time = "2026-09-21T17:54:29.004Z" }, + { url = "https://files.pythonhosted.org/packages/0e/87/8b7016d1084854729c80acfae71c5a51ea7e7c9411d66c3e2729772f5723/multidict-6.9.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:1c9f3c25df6c9d3bbae4f6fd3f514b1c5c740a2110f56ccf36069c85417e289c", size = 290357, upload-time = "2026-09-21T17:54:30.491Z" }, + { url = "https://files.pythonhosted.org/packages/7a/3d/801653b6aa9343a7430cecdefa1bf71ff24432224c02f15cc15e47837652/multidict-6.9.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:cf22b43f35b7dbb9f71e8ee2041b5c00029cdfc28ede3a2f31cf8906f9a6c126", size = 305831, upload-time = "2026-09-21T17:54:32.132Z" }, + { url = "https://files.pythonhosted.org/packages/2b/f3/9fc997861920bdbf70db82bdce5c802ec6477754c4bd78cff2898e3c63f9/multidict-6.9.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8ed78ccad4c7b421804f5d524b7740946a7ef75d89dc0dac52e9d7c24c472410", size = 308995, upload-time = "2026-09-21T17:54:33.571Z" }, + { url = "https://files.pythonhosted.org/packages/ce/5f/278b5a2c99d6de27914b49158dd6f2a6481e53359142cc366dff04821a2f/multidict-6.9.1-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:e3b1aa25f01238886a6baed9e13b9a9240ed344346c79ae280ae65e8603b21d5", size = 279240, upload-time = "2026-09-21T17:54:35.025Z" }, + { url = "https://files.pythonhosted.org/packages/3d/db/0922594c601a691eb4365a83f4f92104ef87a9728d8066fa25c99349e754/multidict-6.9.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:bc94a68ea5e18f8e85dc6b522bcb53093f692c8eb62b4837ac047da73956cbe4", size = 305487, upload-time = "2026-09-21T17:54:36.555Z" }, + { url = "https://files.pythonhosted.org/packages/64/cb/07bca86d4a361a87128f3019540d7689800fdcad44e3b3ad08f1f035ed74/multidict-6.9.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:73533644e1f69ea1164d56cc6505f564c6c44072b646b66d67df2d31fed0348c", size = 301997, upload-time = "2026-09-21T17:54:37.903Z" }, + { url = "https://files.pythonhosted.org/packages/e1/e3/99591bf626613ea35779d2460949b45e59e589dc9058d6693c923eccd4e5/multidict-6.9.1-cp310-cp310-win32.whl", hash = "sha256:66987aa68b0f7c2a1cc5f388ca962b8ed92b10f79de38d6d0d8c716154f519d9", size = 51205, upload-time = "2026-09-21T17:54:39.152Z" }, + { url = "https://files.pythonhosted.org/packages/ae/18/10c008aac77297aa618631e8726ece31668f9dc9d9c848e4b5d2e68eb3d3/multidict-6.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:a32b78c1e52ebd8e247bb68300b90b233300d8816faa008ed0713bc539fb6af0", size = 59049, upload-time = "2026-09-21T17:54:40.465Z" }, + { url = "https://files.pythonhosted.org/packages/b1/b1/da73a58bef2613571902a824f1e11185207ba756215c99038f6d220bc167/multidict-6.9.1-cp310-cp310-win_arm64.whl", hash = "sha256:ab64ace1a68682d191d9bedd9d4c939406ad86b1d9f628180410644249ad46c2", size = 54610, upload-time = "2026-09-21T17:54:41.605Z" }, + { url = "https://files.pythonhosted.org/packages/e3/24/3823efc330630a1f132bcd0a9b182ddec3c53f452f551c8e8d3aaf5a2d20/multidict-6.9.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:910d4260512660484c0dc1588a316fbb35a40c081c36fc51d1225351af17cfe4", size = 96739, upload-time = "2026-09-21T17:54:42.815Z" }, + { url = "https://files.pythonhosted.org/packages/6a/69/36331fe1d3aeb0c525a9972d6cf82791075a395aa96f026f060009d691ae/multidict-6.9.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:33fa55b990f81c2927e01399ace0d18926c69d69baa8cdaa819424132fb97987", size = 58514, upload-time = "2026-09-21T17:54:44.064Z" }, + { url = "https://files.pythonhosted.org/packages/8c/ca/5860651f782078ef13f2761c2593f4ba066d76f626b2f30f23a7f838b775/multidict-6.9.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:369b5aa01b241cd3fea6890bdbb11a1425d87bf1515831500d518f4223e9d72c", size = 57303, upload-time = "2026-09-21T17:54:45.304Z" }, + { url = "https://files.pythonhosted.org/packages/c7/9f/c56e2fa223cb5d182660e1a09eec38880f96b7cd22769582f74447c60418/multidict-6.9.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:803f8b575a71b1b299d677c28db0653459c79b5308874efec813f17b7457c7f1", size = 320076, upload-time = "2026-09-21T17:54:46.826Z" }, + { url = "https://files.pythonhosted.org/packages/59/97/eda4fe0cad51f96096363ed32d3e0f8df28dab00beff4d92adc9db517726/multidict-6.9.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b8a65621b98984a62e59403009591b8a5a7736273aefe1cab64cfb85b365cc07", size = 315489, upload-time = "2026-09-21T17:54:48.25Z" }, + { url = "https://files.pythonhosted.org/packages/24/14/10b1ded0a4085a51c3054125f854da4f47ce4fec724a2d2503231b83f3db/multidict-6.9.1-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:13849a1d4f54c3809ae721e9e83ab28f5ea602f33660cb84eb6ef261eac706c1", size = 296716, upload-time = "2026-09-21T17:54:49.749Z" }, + { url = "https://files.pythonhosted.org/packages/dc/14/04d155dd18528443cb9009f3a9f35f7417773797d072c95104ff17b8b9b7/multidict-6.9.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:dd9a137a4a9becda3094f3831cd026380f75f6855e051eefe4c73ade524f1cc3", size = 330244, upload-time = "2026-09-21T17:54:51.26Z" }, + { url = "https://files.pythonhosted.org/packages/8b/90/284d10b3a9e5b312a8ec5b7a175fc7d560eefdc99886320449891a197992/multidict-6.9.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:9ae9614c317c50836689ce2dfde07c05fe0b16378562e2221746c3913ede3c80", size = 331288, upload-time = "2026-09-21T17:54:52.595Z" }, + { url = "https://files.pythonhosted.org/packages/27/50/f420de3683f9b047fc5588064d84043ef57a7152ef451b8373dfc7068d22/multidict-6.9.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8f1e362c9352b50ed120f001046fdbb80810c9d56580f4c3fc13bbe30823387", size = 320663, upload-time = "2026-09-21T17:54:53.91Z" }, + { url = "https://files.pythonhosted.org/packages/01/ab/0120a650d7ce4fe167299c13a13cc4ee2dc72458a9c0e9e9330b824b73c9/multidict-6.9.1-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0dd655518f136febd96c05131a76a863e32fc2a1d7acd4e3c959e3ceb77d8345", size = 291139, upload-time = "2026-09-21T17:54:55.313Z" }, + { url = "https://files.pythonhosted.org/packages/b3/3f/c66342f73ee5cd2c9b1dda6cfce89b5f348c48921b8c8b6e59aafbbfe31a/multidict-6.9.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2c5d675da8f1cb5650271c8ad5e95c0a3e5a183c105e72d953b12877b1c8d0fd", size = 310044, upload-time = "2026-09-21T17:54:56.745Z" }, + { url = "https://files.pythonhosted.org/packages/05/0d/e44b90d9e77e44ec3473c4c7ac7ea95764d7e8fbf6d5a085ef9bff7ce0c2/multidict-6.9.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:658f90f49cf5af2441cad0a2b801c3ef520471989a1ec55bcb25b255b2ca8d2f", size = 303279, upload-time = "2026-09-21T17:54:58.178Z" }, + { url = "https://files.pythonhosted.org/packages/97/8a/7741f7c23c211fae31ab546f0ba41569dae7671cf7ca30d5afb59e9d92aa/multidict-6.9.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:43124fe172ada86d03ac3c8dc8179091341f6724d5e5d5b160e1587e4cd3761b", size = 326177, upload-time = "2026-09-21T17:54:59.825Z" }, + { url = "https://files.pythonhosted.org/packages/e8/63/0cdbfbbe36316b2ef4b8e011afaca2cf291a73fe4fabf34dd0b22e3ee48a/multidict-6.9.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f0adc22a4eb31e545221d93fc73a0f6a8cc2379d0f4309f71d1d17ba938b82", size = 323526, upload-time = "2026-09-21T17:55:01.43Z" }, + { url = "https://files.pythonhosted.org/packages/98/05/0c86e9678e78f4596df0ed7f59d2aa755107da3f2a92f1b7fa150e94cbb8/multidict-6.9.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7fc59e9ba821b220944ccfe0f89c9dc4745f6d097569992356eb03869f21e953", size = 290278, upload-time = "2026-09-21T17:55:02.993Z" }, + { url = "https://files.pythonhosted.org/packages/95/8e/71bd7f43c4883cba6c5f96db88bd2311d52e74ad7680be5915938490d56f/multidict-6.9.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:87cc632c88ee5dc80e12681047839304d98ee5c9a708d686505767001c9b8b9a", size = 321142, upload-time = "2026-09-21T17:55:04.48Z" }, + { url = "https://files.pythonhosted.org/packages/2d/00/bf59d6bb22a4c152e4039574c29490caf3c65107715121807b4bd7cde244/multidict-6.9.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b828cf64d62dc09ac183f03c1aeedd164ade96a2ce4934109452edf29de1dd13", size = 319045, upload-time = "2026-09-21T17:55:06.119Z" }, + { url = "https://files.pythonhosted.org/packages/3a/3c/f27f4f045198bf1c4bcd6eb3b6cf06be2dceaceb6e67222b903fce7a6749/multidict-6.9.1-cp311-cp311-win32.whl", hash = "sha256:2c1aeb92eea59d824f004341b26d5e4b47a8a441cf9726769b9a90abf9d0e08f", size = 51309, upload-time = "2026-09-21T17:55:07.531Z" }, + { url = "https://files.pythonhosted.org/packages/91/17/c2064aef64efc007bc89a571f843e5772f27946eb9bc018731bf8016e319/multidict-6.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:5f89dad732280e7a10b74d40b91364f88e13c3f2c08c2ef83a8cd42f7a61af2e", size = 59148, upload-time = "2026-09-21T17:55:08.936Z" }, + { url = "https://files.pythonhosted.org/packages/45/a1/3bab1827edd813dfb90712af5cbb7fc1473ed4d9c871d103df4f4bb950c2/multidict-6.9.1-cp311-cp311-win_arm64.whl", hash = "sha256:5800368526647146978389dfaa46da3356291e9f0fff9a4ef12e8c2bef964a0d", size = 54258, upload-time = "2026-09-21T17:55:10.191Z" }, + { url = "https://files.pythonhosted.org/packages/d9/0d/4b5afb6d3e545c9af0cdfe2db8f6f4c6664568c23d863d888674e447e6a4/multidict-6.9.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:29138fef49828542e859828107e42e50d0e587c513b7eb4b2d92bade2b0860fe", size = 98360, upload-time = "2026-09-21T17:55:11.508Z" }, + { url = "https://files.pythonhosted.org/packages/89/ab/1b9ca66251899981b21138b87da9d5a9c2c81af12b1ea7d19466972f7fe2/multidict-6.9.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:19e31815d41cefc365489e591d105d2baceb2f65aa75d29471fbdbda8651e006", size = 59979, upload-time = "2026-09-21T17:55:12.866Z" }, + { url = "https://files.pythonhosted.org/packages/36/eb/6ae44062466c26c8469ef43f2481a6a48d8cea0587b2d54514ec92e2adfd/multidict-6.9.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6ed30be8918e18c8bed0a2e8b70639ecf02feb61ed00ca2e41cfcb2a50fa3f42", size = 57736, upload-time = "2026-09-21T17:55:14.223Z" }, + { url = "https://files.pythonhosted.org/packages/b9/5c/a67817593019257a4ac8b0d1b4c426030e637c047b0692ef405439ecea7a/multidict-6.9.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:637f4ae36264bd7b8d9a60193acddc1d735ad52e8ed53a19931ea6d921fea8e5", size = 333097, upload-time = "2026-09-21T17:55:15.591Z" }, + { url = "https://files.pythonhosted.org/packages/90/bf/599ae2e6222822d88a247a8a7ae82fe6fd25d5700757b79603d5edafe6a0/multidict-6.9.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:35fc236507fb1b3138f0af5ecd5f94ed752d4d6d826248eae425f86204013eea", size = 334196, upload-time = "2026-09-21T17:55:17.015Z" }, + { url = "https://files.pythonhosted.org/packages/15/10/d8aac5acacbe7f5c117866c776ec26d5f15a868759b6f37ad8e7ed3b5b02/multidict-6.9.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e58952f04772f59f11c6e007471449809a30165188669bca8fdb19dde40a8f24", size = 317465, upload-time = "2026-09-21T17:55:18.412Z" }, + { url = "https://files.pythonhosted.org/packages/19/0a/714f796f7293a8b1c5c3f465a26996231d5450c54e85d64ef1258c091134/multidict-6.9.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d35a4f1c63f07fbb8c8f9946dea98b21eddf6c57421585f71d91864be3ba2a24", size = 345914, upload-time = "2026-09-21T17:55:20.306Z" }, + { url = "https://files.pythonhosted.org/packages/da/b1/e37fbf769c567be277bcf32df6234035a4384677fcc1bd852752be3d6b93/multidict-6.9.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b5f8771aaaed7f80e84a4e471d2f29ab6721e4595075e54d03ae1ed951b2000a", size = 351163, upload-time = "2026-09-21T17:55:22.21Z" }, + { url = "https://files.pythonhosted.org/packages/ed/5b/db08419c1e1f7c9d60cfd2787b2b517d7ae4ebbda8281b48a33eb5141467/multidict-6.9.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:976fd7689d69ec78d67d31d38d396d8adb562f7e8368279f76aed4aa451fa06d", size = 336881, upload-time = "2026-09-21T17:55:23.699Z" }, + { url = "https://files.pythonhosted.org/packages/9b/07/cc9bc8a62651d2d53ab93ee4993b3a71b7cb78eb8ebfc9c757a5b6698617/multidict-6.9.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:95052e8777a86bae87c0bd0b5ab22d809e3d1d02bf69e3e66ddda5ba75a05805", size = 303405, upload-time = "2026-09-21T17:55:25.305Z" }, + { url = "https://files.pythonhosted.org/packages/b6/0c/8e912afafa70e944dbb8bec4b66ca6e008511395278c0d3dd0e89567536a/multidict-6.9.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1a8adfcaf96f587ab138476eaddef95f29b8a2a8a9afbfea8d2fd62180995d02", size = 324265, upload-time = "2026-09-21T17:55:26.989Z" }, + { url = "https://files.pythonhosted.org/packages/66/6a/62c2af80fb085e6234805017af857b8e913dfac7a55e9c1349c27768c58a/multidict-6.9.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1a53de2772cfb74559df2eb4456ec4eeb908435ec55a84b69370d9d745d62aa8", size = 322085, upload-time = "2026-09-21T17:55:28.732Z" }, + { url = "https://files.pythonhosted.org/packages/f8/6b/35bf801b336fd960811207203ffdcdc24acc3558b3e7ff2e1c914b141e70/multidict-6.9.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f2ce963299d42fa3f22a90adc0fdf174792ffef5ff4c7ffb68260548fb05580", size = 338107, upload-time = "2026-09-21T17:55:30.303Z" }, + { url = "https://files.pythonhosted.org/packages/80/41/495ef65bf5bba29d142d81b3fe1b8154b919bed70e96491b1e93c3c26f0f/multidict-6.9.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5b30ddf7234e611ca877575b62840e6af5977f92f1f9d532eedbb05a44ff8004", size = 339631, upload-time = "2026-09-21T17:55:32.012Z" }, + { url = "https://files.pythonhosted.org/packages/19/bd/057fdff5f4e04dcd40a960e38f77d19d3c4b67dd243ffa5f43718edb29fc/multidict-6.9.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:63ada7ee2e9345695f9e9bc4c65d72222253f07b1ac94fd0e37555cc6f3c7f60", size = 302080, upload-time = "2026-09-21T17:55:33.817Z" }, + { url = "https://files.pythonhosted.org/packages/3f/de/9ace933ee8dad808632523726f42255b09600087219e3d4ead7369820910/multidict-6.9.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3c95601ed98fad3f6e2f8fe809c3b526b0fab31ef525e00a155e227f3d17f58a", size = 341107, upload-time = "2026-09-21T17:55:35.471Z" }, + { url = "https://files.pythonhosted.org/packages/d8/ac/7c1204406097bfc5c283d4a3287d61166807d189917567df4c1318484fc4/multidict-6.9.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c148e8b596000dd3e4bfe206e70f3e666be18d72032e0012555f2373c52e35d6", size = 333482, upload-time = "2026-09-21T17:55:37.002Z" }, + { url = "https://files.pythonhosted.org/packages/ff/c0/a70c32ea3299ebe00f44533740cb46905717c51faf29bbd3ce8bb5886d9d/multidict-6.9.1-cp312-cp312-win32.whl", hash = "sha256:f9dad513626a33670f17cddc6078e30e311f444c957e8dbfc5b2b4603c8b4edb", size = 52548, upload-time = "2026-09-21T17:55:38.529Z" }, + { url = "https://files.pythonhosted.org/packages/d7/2e/8c9c2591df01e5692ad1bf92febb082a17b1c6c3a19aa8b7ff49988fd989/multidict-6.9.1-cp312-cp312-win_amd64.whl", hash = "sha256:a16a1dc8529f9e734a41c3b856f3eae7ebacdc061dde3f8a844e0c7889c97203", size = 59622, upload-time = "2026-09-21T17:55:39.86Z" }, + { url = "https://files.pythonhosted.org/packages/d0/95/59f4472ec512bc180fd207899594c7803ece96262ff9aaa3a4b6d7da6940/multidict-6.9.1-cp312-cp312-win_arm64.whl", hash = "sha256:361f7206cf341ba94fb015688f5c8b480f8e63bd58a4c14a48aeca7851a241cc", size = 54930, upload-time = "2026-09-21T17:55:41.155Z" }, + { url = "https://files.pythonhosted.org/packages/eb/45/ddf7c76860f5f553a23ad3ca38463ccf5247081618977742c8dc4625355e/multidict-6.9.1-cp313-cp313-android_24_x86_64.whl", hash = "sha256:d7bf9e43282d69561618e8a0ea33368d532ebef42f15c096f427090521dd74f3", size = 63266, upload-time = "2026-09-21T17:55:42.676Z" }, + { url = "https://files.pythonhosted.org/packages/6d/d3/f4ae5945ea2de597eaeb4eca3a74c59783ace54482c9b49435442b63efa8/multidict-6.9.1-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:03d47df72f084f757c1cb771188d5f4e3a805e4abc4d67e32509272343ae9382", size = 55771, upload-time = "2026-09-21T17:55:44.016Z" }, + { url = "https://files.pythonhosted.org/packages/93/7d/15468239920040d01c686e5ae669e6382f7bf31fc3e5e0a6b8f1c3b32d3b/multidict-6.9.1-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:6bc94fe17c3c56e5418f79515b786b101845f70609b0d19d0c1ba13448e5633a", size = 57116, upload-time = "2026-09-21T17:55:45.315Z" }, + { url = "https://files.pythonhosted.org/packages/17/1b/b958f06aac2d8b1e485eb1c105b1b159cbf3868249e5142142451577dad2/multidict-6.9.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8f2973bbd2bebd9d2e0cd6394c1292a1a19ccd56bdcbe1e174059f1a39be5b40", size = 97692, upload-time = "2026-09-21T17:55:46.674Z" }, + { url = "https://files.pythonhosted.org/packages/93/6c/d6cfe18e61010166d7237d7527c775eb9843e7078feadea45b7628751b60/multidict-6.9.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:de7738b8c0bb74c4cc16bbd7fb49fc2bcf6430dba11b3432cd52768ae40933e8", size = 59556, upload-time = "2026-09-21T17:55:48.22Z" }, + { url = "https://files.pythonhosted.org/packages/46/46/9b4c1127cece0289fb207d04aae5116382ddfcb2a4dc8e0cb49a33f3c7b3/multidict-6.9.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e5ccad4b7bac125722f48d6f862bed3b514d8526deea06316bb72f152cd30a7c", size = 57357, upload-time = "2026-09-21T17:55:49.998Z" }, + { url = "https://files.pythonhosted.org/packages/bc/fc/c18b07100a6064573e49e538d13d47eb2b5221f48080512df78aef54ab04/multidict-6.9.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:a49ff5cdb33654cb7d6a3c377aa2a83ddefaa1db31eb10bcf3c180aa84f9af8a", size = 330433, upload-time = "2026-09-21T17:55:51.435Z" }, + { url = "https://files.pythonhosted.org/packages/62/ff/52a0082adeb69656b634609d4fb0ae65456deaae4cca3d5a12656626dc50/multidict-6.9.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b22ff30006a2f28f8bff878fb93413cbe3a4d1fd517c28081d848c90e9cfd2c8", size = 332487, upload-time = "2026-09-21T17:55:52.937Z" }, + { url = "https://files.pythonhosted.org/packages/39/3e/80bd4729635a7af371ff4dcc312594cf96e73f98854491be8740792de430/multidict-6.9.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3adf06c66041aa21eeb8a71e82379b74773298c8e6d3d839b151aae441a99b94", size = 316911, upload-time = "2026-09-21T17:55:54.751Z" }, + { url = "https://files.pythonhosted.org/packages/15/f4/7ea4a907e053e924e2e1694d90560f79f72056504bfd5e8483695f9527d2/multidict-6.9.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:963a8d8f97057082679523d0fd4c53a38f86bc58cabe4556faef682ae53fa2fa", size = 344950, upload-time = "2026-09-21T17:55:56.5Z" }, + { url = "https://files.pythonhosted.org/packages/0d/16/9642ae41fbfbdc546aa481c2b07ae1bc087a94ab5f5020b4d9ab77da401f/multidict-6.9.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b66ccc5c2cdd26e74fa5d4c29ffae424cc6148bf93ce574821783fb3b6d452c5", size = 350264, upload-time = "2026-09-21T17:55:58.073Z" }, + { url = "https://files.pythonhosted.org/packages/93/f2/e06c8e42074d0a4b8419bfe92afbd1d262190b69549ecbcd2dffa4f103c2/multidict-6.9.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7fd79c521f6290c69125fa2b85fa65d9e657e6a8ffaf722dc881b926bef4aa5c", size = 336213, upload-time = "2026-09-21T17:55:59.723Z" }, + { url = "https://files.pythonhosted.org/packages/98/43/d7cf9ef4700e7c25244590d1b4f20cf12cbed86beba6c17be4d9e48c1099/multidict-6.9.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1d804e4caf5d5da37d6dac1325da5629ebef1e27a294c2b568b295814aa36c7b", size = 302555, upload-time = "2026-09-21T17:56:01.666Z" }, + { url = "https://files.pythonhosted.org/packages/7d/3a/54209920324bc3928f5f2ba28b01a6dd957a9d48c3aaff77e38faaf5668d/multidict-6.9.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bb0d664505f4b112f384cffeee82e91e3f6448d8e574989479db4439b68cba05", size = 322247, upload-time = "2026-09-21T17:56:03.265Z" }, + { url = "https://files.pythonhosted.org/packages/33/50/df96f961b178b621ab0adbf9221d4fd21534e1064fd9f5e85c1fa27fea55/multidict-6.9.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:9e14d17773b1b3c758ff153659a1824608a0cb562c45f484b5ed8a433428444a", size = 321787, upload-time = "2026-09-21T17:56:04.894Z" }, + { url = "https://files.pythonhosted.org/packages/a7/9b/37f354562a8f82f9c1f63d3a94300fc82126d50320175f0702bbd544f87c/multidict-6.9.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:083735b7f395894e43adb278d5dae901448883a835ff8f1977e285fefdb10418", size = 335498, upload-time = "2026-09-21T17:56:06.783Z" }, + { url = "https://files.pythonhosted.org/packages/1e/44/78e366efc6c004185295cc9eb9711c10f13eadf3b547603b9c5526329976/multidict-6.9.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b65121091567847a8cb520d364ab22ba90e00d3cc55fa9eb34bb439f0684bcd1", size = 338244, upload-time = "2026-09-21T17:56:09.162Z" }, + { url = "https://files.pythonhosted.org/packages/ad/2b/ab5bd3964691abe4d14b43bdbdb8a621b77cea2ca352dc93159ec0a4575b/multidict-6.9.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:ea999ae6e80e66ad5eea287860951b033d0104ca34d6d87c7b5125ebe0e12721", size = 301641, upload-time = "2026-09-21T17:56:11.227Z" }, + { url = "https://files.pythonhosted.org/packages/ea/a8/f6bc899f5aafaba755edc8e4bb934bc00b1e405f8d3fbc1dd10283738074/multidict-6.9.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:095d900c242e00fbe5f321ee072e7278b4153e78c5ce9c1efde167d62c1e4771", size = 340162, upload-time = "2026-09-21T17:56:13.076Z" }, + { url = "https://files.pythonhosted.org/packages/eb/03/a8fc809ef364b8c231c065ea2ea2f97ae86d4f9a0e36b5721759fd606778/multidict-6.9.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6441cc837aea58be7d9baef1b2383eb8311ab9303f500f99ac90b584cd78bb14", size = 332826, upload-time = "2026-09-21T17:56:15.175Z" }, + { url = "https://files.pythonhosted.org/packages/f2/27/32dde80245e2024e9bb7a6ca3c2fb7c695dc74014cba557cc35be6f91e24/multidict-6.9.1-cp313-cp313-win32.whl", hash = "sha256:9c4880d017555d70dea367dd49271830842d48e3891c2da97da7ce8c4abcee40", size = 52378, upload-time = "2026-09-21T17:56:16.959Z" }, + { url = "https://files.pythonhosted.org/packages/be/78/1bac2987edac273a6b27fa50e9204bc3466c94a7b4f6a44828d730f8810f/multidict-6.9.1-cp313-cp313-win_amd64.whl", hash = "sha256:ac51cd64bae51c462ea58ad2492c9b8209667a4ef60c45c4a304518b67598d5d", size = 59449, upload-time = "2026-09-21T17:56:18.336Z" }, + { url = "https://files.pythonhosted.org/packages/e1/32/2a77ce19eea48cb9b3521a202b513ba3349aafa702c8317be0b645ffb74b/multidict-6.9.1-cp313-cp313-win_arm64.whl", hash = "sha256:37a9ebe00c698279213d56e6c64e1962ab1e092918270649b397cac3dc196ca4", size = 54713, upload-time = "2026-09-21T17:56:19.774Z" }, + { url = "https://files.pythonhosted.org/packages/ec/0f/c6041015aa2cdc11e1dff0cae58898ae5525d19e35efd65a4ecf3c6ea235/multidict-6.9.1-cp314-cp314-android_24_x86_64.whl", hash = "sha256:fc0dcb22fa9aeabfe3fa4e0430099acff985ec5d77a851382f76cc6146e780e5", size = 62336, upload-time = "2026-09-21T17:56:21.181Z" }, + { url = "https://files.pythonhosted.org/packages/23/db/95bd0afb130a0149c955f1f066143528d60864e64f41ff5a1e1313609361/multidict-6.9.1-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:024123f0ab402ab33828e24eb80fa8f25167d0d3783ba5f287e39ed741e6abf9", size = 54892, upload-time = "2026-09-21T17:56:22.63Z" }, + { url = "https://files.pythonhosted.org/packages/94/cc/8aa34ae8d09498e8da003f485c03371b55cf1bc6d56cff861b3a7de61251/multidict-6.9.1-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:af1b5a92315048c3e36bbebfa7d4760a9c3e910bc4166f11b20d77d20d6bcfca", size = 56251, upload-time = "2026-09-21T17:56:24.36Z" }, + { url = "https://files.pythonhosted.org/packages/52/48/22baa3b95375096369b04c4348af14139570f302f951773d2c68bf0ccf2e/multidict-6.9.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:b2483da477932ad1983d1d33c18bc3771c6fb00cfbaaed70a875fd547ef8e840", size = 96345, upload-time = "2026-09-21T17:56:25.777Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3e/b96779dcac28ec6d491fd821112a0156b519b6701bba186cdf6f6df737f4/multidict-6.9.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:db4d697b18b6ef5528b1f36bfa25072cd2a421869f5963bc0e92c8a34b9e2800", size = 58901, upload-time = "2026-09-21T17:56:27.364Z" }, + { url = "https://files.pythonhosted.org/packages/f9/b4/8e6d950f02ca6ecc00ecf671f2ddb5dab7017671a8d197326f75621f5786/multidict-6.9.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:854fd2f1bc6e8a56b89910b5cd7261a8b40f13ebb31572da985ce59c7da0886d", size = 56491, upload-time = "2026-09-21T17:56:28.901Z" }, + { url = "https://files.pythonhosted.org/packages/ed/8f/212ed7e03282c7bc271e3796bf985b53d5727c2827361e3dd9c5ee6b093f/multidict-6.9.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:03731f6fc036180700c9dc2308205a48e5ca6f3ff03087739ab746f294022201", size = 332297, upload-time = "2026-09-21T17:56:30.495Z" }, + { url = "https://files.pythonhosted.org/packages/a0/97/555aab000e03ecba85c0a1837fd5674d8bf10949490df7800da3a40660ce/multidict-6.9.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:989261c5f1735a165f2e4e87cf6d5f17ab734fa18f9ad0383d5adfcdaefce701", size = 329197, upload-time = "2026-09-21T17:56:32.652Z" }, + { url = "https://files.pythonhosted.org/packages/3d/25/f3539b5bdc147beba66015795dfe589eedcc580348fb1a8c69b1df4196b5/multidict-6.9.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b4c9e5d05b126b267ac048a89a0e2d9b48b1b648add62d4872906304a8590610", size = 308456, upload-time = "2026-09-21T17:56:34.657Z" }, + { url = "https://files.pythonhosted.org/packages/1e/7d/4665cad8fc326787d218879be879d86dfe32f006c1f88ae47b04d3b52fd5/multidict-6.9.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9d0a21cf76153de8f2d96a877991d6bc59b9ab5180b949e50db73cc193b4a694", size = 343382, upload-time = "2026-09-21T17:56:36.606Z" }, + { url = "https://files.pythonhosted.org/packages/41/01/e1e9abe27f492b22dede492bc423015597412b14ce074f7475f4ecd80185/multidict-6.9.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e7386aa18d98d6b8af44b92173654ec469237fda35f8e8523e43b581a86f476a", size = 346848, upload-time = "2026-09-21T17:56:38.344Z" }, + { url = "https://files.pythonhosted.org/packages/f8/e5/8d54118bc228e64e1087f1729647b93bbea225eda4a3f914663a6f410bca/multidict-6.9.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b69651732c64afb691e50cdc3387cae305e0eeff8804fe3e3ce203876494932a", size = 333612, upload-time = "2026-09-21T17:56:40.041Z" }, + { url = "https://files.pythonhosted.org/packages/76/e1/9509dafc1fc68948e75842a74533ddfa64af57f2b17810e9cacfa68a829b/multidict-6.9.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1fee9a16d88a1c4865610de31ef5c666671020d7a81d1f510eaf3c97d00ebeba", size = 304246, upload-time = "2026-09-21T17:56:42.313Z" }, + { url = "https://files.pythonhosted.org/packages/1d/b6/96b93808e1bec0b51d49d89859e49b82a94f7b2e58eca0fc44ffcafd3ae5/multidict-6.9.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7814bbee202acd3bd240204c17d8b87a4c48c81064fd8674dbe527d94d5a4290", size = 321983, upload-time = "2026-09-21T17:56:44.399Z" }, + { url = "https://files.pythonhosted.org/packages/d9/1c/08e5184df026b9d8e05a6dce5da22628e46bc4a7c7f03b8bf3c6939a8c46/multidict-6.9.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:95f273bea318a194f656527ee2ed19494327bc500b8e87d9358e3222579aa28d", size = 315927, upload-time = "2026-09-21T17:56:46.208Z" }, + { url = "https://files.pythonhosted.org/packages/d7/5d/9ff39e7387f6fcc9a81af5dbf055fde08149849a04f8df10ca5b086b0d39/multidict-6.9.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:73bcafa21a78d0776b3ee7cd2a63c66f968eb7db8e8d594e32d7329950f6e828", size = 336827, upload-time = "2026-09-21T17:56:48.021Z" }, + { url = "https://files.pythonhosted.org/packages/5a/be/30fbb2cab22203128928066de94be247dc9a3230bf2bfc54437ac3b5f9f7/multidict-6.9.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:1a938761c77e0e6edb0c93d02f4e988d44a69e5195e5a3b893e5553311347132", size = 336317, upload-time = "2026-09-21T17:56:49.778Z" }, + { url = "https://files.pythonhosted.org/packages/bf/f0/2480aef6b7d8e7ab89b064ae14f12ec069570dab3a5c13e0155912293247/multidict-6.9.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:37245ca4105386194dd1d292a6f2aae09bfe1bd7ac6f9ec25093e3cf8e9b143b", size = 303258, upload-time = "2026-09-21T17:56:51.829Z" }, + { url = "https://files.pythonhosted.org/packages/4c/04/dbe59cf4ea3778600e8e70e30b31aa9118ad6da2844bc9f717804cbaa000/multidict-6.9.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:f0700527dd5bfa8b7204b08330542f4f388899d3c14d885d8a368992e0eb562d", size = 337232, upload-time = "2026-09-21T17:56:53.537Z" }, + { url = "https://files.pythonhosted.org/packages/f4/8c/abe55548f06f12878588f08eb803c5a391283f01243f784cb00adac79231/multidict-6.9.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6b7e54fd883671d1a8810704851c044b7173287c552b9f5c3d9e0eb9f00ae194", size = 330261, upload-time = "2026-09-21T17:56:55.335Z" }, + { url = "https://files.pythonhosted.org/packages/d0/f1/ba67f668478f152bdfa18abe72e7588bd078bf8b42c172fcf542fcf45826/multidict-6.9.1-cp314-cp314-win32.whl", hash = "sha256:e81ae656b9935ac4528a71f96bb7a14d949778ed1897c573d3e7ebb9187f8841", size = 51715, upload-time = "2026-09-21T17:56:57.048Z" }, + { url = "https://files.pythonhosted.org/packages/33/81/014bb2128aedc8157d2848f0ec8a0209c6b822fb88deea012834e1c4a4e8/multidict-6.9.1-cp314-cp314-win_amd64.whl", hash = "sha256:acddcac38adc8342ba48aba98896faa7928854bebb62542362138655b5367ee3", size = 58621, upload-time = "2026-09-21T17:56:58.531Z" }, + { url = "https://files.pythonhosted.org/packages/66/34/8f43c03c2d8821a2320b8c560d8a49d0be2920627edfac3f546922f91969/multidict-6.9.1-cp314-cp314-win_arm64.whl", hash = "sha256:32217133dddc58c927805cf6c0731d8144584176b768042ee886d51e71860bc9", size = 53959, upload-time = "2026-09-21T17:57:00.15Z" }, + { url = "https://files.pythonhosted.org/packages/08/64/4f2a5eeea10b6d42634ba168ec6efc732ef218772e57b8239cd485c202f6/multidict-6.9.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0b2fb8c349d1103863750b5d8cb5ace766917f4b35f3d883c8f778853eaa9f76", size = 107694, upload-time = "2026-09-21T17:57:01.785Z" }, + { url = "https://files.pythonhosted.org/packages/32/ce/c68d08ac2096c1528ff20d77fd10f7e401db3e534ac5a1c7726e36a77c2f/multidict-6.9.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:56d834b74c993a7d7cb2b8ab33a0d55c3e0d4a3d2f2da2808a4ad3d79189711b", size = 64766, upload-time = "2026-09-21T17:57:03.52Z" }, + { url = "https://files.pythonhosted.org/packages/3a/9a/9f5c270c88fe289b4876fe28f9932a70e015a7916aff1e5b0325f7597b11/multidict-6.9.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:783ba7d845d79ce976afd9c1e91a4e5714671defa198ee789e8b23316083a485", size = 62723, upload-time = "2026-09-21T17:57:05.104Z" }, + { url = "https://files.pythonhosted.org/packages/7c/63/c9a0b131354dd949426166cef712d708f436a8cf261114f8d5d2aec440ca/multidict-6.9.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:4d718fa1b5f0d0dd75e86fbbc5b0c93ea3a5d65216c85c61cd5d7cdddfe08455", size = 290445, upload-time = "2026-09-21T17:57:06.687Z" }, + { url = "https://files.pythonhosted.org/packages/9d/41/ed27d1d20ba91f4e13e8f7dcfaa592614ae0e1d5f45e03171d23c3b098ac/multidict-6.9.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a313bad717dde740959d50850c315b75fd4eb0c5e6b4dc8535db0f1c369be125", size = 304375, upload-time = "2026-09-21T17:57:08.717Z" }, + { url = "https://files.pythonhosted.org/packages/66/6f/a7b26167173c3b73d6e5ebb0856c5154ad005156c3a2fa4062329921819c/multidict-6.9.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ef01d29fca550ab871fd99154f82c6472aacf8e7def272dfb07b460123850390", size = 281746, upload-time = "2026-09-21T17:57:10.713Z" }, + { url = "https://files.pythonhosted.org/packages/34/1d/da27bdd49b0cb84263288f5f48dbd915f2d17fd228fee2078ca607e80277/multidict-6.9.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0f3bd290711c6e9486173a6ee7cd4e7f00c3971c7908c1ec1b6e5437c5e4c6f9", size = 311499, upload-time = "2026-09-21T17:57:12.467Z" }, + { url = "https://files.pythonhosted.org/packages/d0/36/ab0299a7abf53e38ff75d96c64480f1e2ff8edde985f93f7a1ad5e08bd94/multidict-6.9.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:81cdc537e0a42e3c0170752fcadbe450246d5c3b4b7231d6eb9672456605ac94", size = 313553, upload-time = "2026-09-21T17:57:14.548Z" }, + { url = "https://files.pythonhosted.org/packages/5a/44/e21be702efc9c9ba097c8be874c68860b1cb6cf9c85611263039bf95b37e/multidict-6.9.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8b193bf7a443c97d81c47052f60c486071a4bdef4a573fa2514f920089414d45", size = 299898, upload-time = "2026-09-21T17:57:16.192Z" }, + { url = "https://files.pythonhosted.org/packages/00/8d/e93bc0dc947c7f872e502cfaa7ad9d98f001e1c93cfa6f4940457a6e187a/multidict-6.9.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:7a0c98f6a636adf0d7edd60c61589eaf52d149239af754d0bfeb0effedba53a8", size = 273054, upload-time = "2026-09-21T17:57:17.793Z" }, + { url = "https://files.pythonhosted.org/packages/5e/c9/945b44493fbe7af26ffe1e43c506b376daeab070fc1a0923bef9bbf572eb/multidict-6.9.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:6e6b7e3a1520c39a2772f414cd9ddf5995f77e4e823dfa1522af383addd465a3", size = 294751, upload-time = "2026-09-21T17:57:19.631Z" }, + { url = "https://files.pythonhosted.org/packages/24/79/0969a9b38b814e5fa3af1b0a57708c49b3d9b3d55c208bac6e98b87bb028/multidict-6.9.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:ca65cced0d67a9039e93bcd98a369920e499bf98296844ff56ead01c9085321f", size = 284523, upload-time = "2026-09-21T17:57:21.313Z" }, + { url = "https://files.pythonhosted.org/packages/1d/1e/c32ddf53234c228b1a374ddabca19f542ac7f32752f5155982abe2304833/multidict-6.9.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:372c063f37480f62c1ae32dc3a1a0a5942b180c883f99789075a8a8ec3c4e709", size = 290275, upload-time = "2026-09-21T17:57:23.206Z" }, + { url = "https://files.pythonhosted.org/packages/5d/09/7a99a3daafd987330abb865a2d36e432fd8bf18e790ddda55c5de15eb98f/multidict-6.9.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:827c92145b3b976b39430129c89d213b250dacbe5fce678e9a03940e6e848983", size = 303350, upload-time = "2026-09-21T17:57:25.086Z" }, + { url = "https://files.pythonhosted.org/packages/2e/09/7e6ebaecc4e226d7fe27973c271d58b75c14c24e84c23736d21dc39997dd/multidict-6.9.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:9b0124b9c17e9890f0819b2e7a5f65ec9a2f5aabd6c8e7ad090c1675cf70dee6", size = 272232, upload-time = "2026-09-21T17:57:27.193Z" }, + { url = "https://files.pythonhosted.org/packages/1f/6e/420e9e879b21cbdb5036214ee238efabcfab7bf262d3fc124132050f79ff/multidict-6.9.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:23136f5a564654eb61061ec6d5620a4c1ea32c8f552b65e9982a12b72bff601b", size = 300525, upload-time = "2026-09-21T17:57:29.004Z" }, + { url = "https://files.pythonhosted.org/packages/b7/7f/c6b0896850b3ceb190ca302760d63148843371f027c5dde3d1d732343a08/multidict-6.9.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f2524ec55b3e65cbe235a8b3c36e2af3b635be02ed05e20c94e70c5c943c009e", size = 295933, upload-time = "2026-09-21T17:57:30.837Z" }, + { url = "https://files.pythonhosted.org/packages/29/f2/f0ff3384a756227741c72f4ee94cadf1f9900df0ae961e48639f96115b1c/multidict-6.9.1-cp314-cp314t-win32.whl", hash = "sha256:35ba0263bae5dd3ad5aad767cc9afc01a8598c7dae30f1b3b2de98b1b32c28bd", size = 57776, upload-time = "2026-09-21T17:57:32.835Z" }, + { url = "https://files.pythonhosted.org/packages/8d/87/013e1eed30ad46bec1eb68947bc9caf55ba2fd0d6aed04fe964e3b44c23b/multidict-6.9.1-cp314-cp314t-win_amd64.whl", hash = "sha256:7c8d5882ba25ac0282258be435d8a05aa0cbcacfce15799154a338f847f159b9", size = 64881, upload-time = "2026-09-21T17:57:34.489Z" }, + { url = "https://files.pythonhosted.org/packages/7f/95/64dd049bb4c53426e2fee7afb874daaa8b4426c41878785883a94511ecf8/multidict-6.9.1-cp314-cp314t-win_arm64.whl", hash = "sha256:ac348379cf4de5538a0a213be1532d289aa801ec5d267c5909446b9ea2f8e2c3", size = 58582, upload-time = "2026-09-21T17:57:36.19Z" }, + { url = "https://files.pythonhosted.org/packages/a2/2c/26bc1723592cfe965b575652a7749026474b0625b04b04564e1fba265dc5/multidict-6.9.1-cp315-cp315-android_24_x86_64.whl", hash = "sha256:f04551dce5a7db8c9659f2e4245494c182d0663b83661803e08d46bfcae5eda1", size = 62339, upload-time = "2026-09-21T17:57:37.967Z" }, + { url = "https://files.pythonhosted.org/packages/bd/c5/614d2eb9995232d066aae7f17d1d454060b6b5d882b22fbaf6150b05ef1d/multidict-6.9.1-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:c0c88085affd35c33e124e36930c5ad96aff9294ce195eaa0fd9cec962b64a82", size = 55009, upload-time = "2026-09-21T17:57:39.746Z" }, + { url = "https://files.pythonhosted.org/packages/7f/24/f7179ecdf9cdd3581ace3292c3b883a1a500a374aa4e619bf6eb521c62e5/multidict-6.9.1-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:a8b75dd3d3638d9a19f23e84af4ffab3b8940422c0df2da2a77005ef5aa3d7ea", size = 56273, upload-time = "2026-09-21T17:57:41.544Z" }, + { url = "https://files.pythonhosted.org/packages/ac/72/c9dffcecccd1f8b9a58f960ec4eaecab62c4edb08d5bb984d4de67fe3fdb/multidict-6.9.1-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:006c4478de0a1876f4834e14255776286f09b9846b505fe63f67f9d173a9487c", size = 96390, upload-time = "2026-09-21T17:57:43.385Z" }, + { url = "https://files.pythonhosted.org/packages/e9/3f/76542360e655cecdb7c158c7af88c69c4db0d2aac3421659d41214927229/multidict-6.9.1-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:2784090c30a586d5b45197bd9c32f87fb927216cde302f6cfd76d76577e90f08", size = 58900, upload-time = "2026-09-21T17:57:45.105Z" }, + { url = "https://files.pythonhosted.org/packages/04/15/f28c71af461dd4ff15653a165cfd8ddaf01f3387ff80d2dd0de057d527d0/multidict-6.9.1-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:7c708566da8014b120a64b1eb6d200c6c0c8cb36296383723cdb6fc82038270b", size = 56540, upload-time = "2026-09-21T17:57:46.913Z" }, + { url = "https://files.pythonhosted.org/packages/19/de/5ee4050c3ddad88c605a89fc1cd18e89abd40a64f183e6fb5276b6eb7f52/multidict-6.9.1-cp315-cp315-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:042fb0196047e786936a730bd302de83143950da45f2c16078da8f35e1cf7919", size = 331818, upload-time = "2026-09-21T17:57:48.825Z" }, + { url = "https://files.pythonhosted.org/packages/70/e2/2d4e3c3ee70f583334ff236fe6a3babf7a05ce56169a15df65453af647c0/multidict-6.9.1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a2212a0c842c723d919ea4a22a9296cb6b244b386e4e6ea92adfc7fbf3095519", size = 329800, upload-time = "2026-09-21T17:57:50.91Z" }, + { url = "https://files.pythonhosted.org/packages/d6/14/f64bd05667343a7250cdd99f81bda2270e3959f00832441f10c7f904e1c1/multidict-6.9.1-cp315-cp315-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:fd882aa29bf402b62bf1fd7c19fd5df4b6528cf468a908864b39368572b662a9", size = 312048, upload-time = "2026-09-21T17:57:53.053Z" }, + { url = "https://files.pythonhosted.org/packages/64/bf/a91256ce00199e7544e3eda79c4e9544eb7388c38fa22f11638c2e357ccb/multidict-6.9.1-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c57541034d12b215ab0a2bfa371d1a8a198da18176d0426c27105b9161a6862d", size = 343676, upload-time = "2026-09-21T17:57:55.069Z" }, + { url = "https://files.pythonhosted.org/packages/14/48/628b978413518159228c2b2ec38645362ceb6427e935d83d716e26490a49/multidict-6.9.1-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d73fed4e37158ff00cd271871170b79e40138db51e625fd352fa17c6acb34f67", size = 347028, upload-time = "2026-09-21T17:57:57.157Z" }, + { url = "https://files.pythonhosted.org/packages/8c/73/5f9dc2b5ac7dd7a82458ae9cd283b99c185834f23442ace295362dcc5e45/multidict-6.9.1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:79da2491348b30810728050b4a8ec0416f85884125c2fd44655b3d01150d9c3e", size = 335670, upload-time = "2026-09-21T17:57:59.126Z" }, + { url = "https://files.pythonhosted.org/packages/f8/84/6f319ee000f5ab3fa0055b194ad706fddd552c60c76a21d581c87db1d46c/multidict-6.9.1-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b4da208a63434d21a3df64d29758e650fc4aa8cb05848554b76949c296539cca", size = 307804, upload-time = "2026-09-21T17:58:01.2Z" }, + { url = "https://files.pythonhosted.org/packages/3f/24/61be5fe1616d033532e8d63dc789c0f35b9793917834713eefe050589ba9/multidict-6.9.1-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:877ca17fdcfdf5c397493a71e5ff97a87bb181417fe717fdadc77c08c09301ac", size = 323409, upload-time = "2026-09-21T17:58:03.383Z" }, + { url = "https://files.pythonhosted.org/packages/22/a6/eab8aaf59892169a0f4e8e78a5516a6caa6abd8e96e6410111258f4ef0ef/multidict-6.9.1-cp315-cp315-musllinux_1_2_armv7l.whl", hash = "sha256:40aec5299e1ed71fbb988389059da381c3c1a60e0c649acceb2a35d9b128848e", size = 315746, upload-time = "2026-09-21T17:58:05.372Z" }, + { url = "https://files.pythonhosted.org/packages/42/b1/d1e14bab80a74babf6e2ac971a878b84fdcf3a972f3ec3400ca12260fac5/multidict-6.9.1-cp315-cp315-musllinux_1_2_i686.whl", hash = "sha256:4a409ccc42aefec904038695d5d7fd6d8f3af2721b7b6401d55135ec7d6d298e", size = 334529, upload-time = "2026-09-21T17:58:07.35Z" }, + { url = "https://files.pythonhosted.org/packages/f5/50/a05b1d36f6d3363a5a334cebbf11624c9c7a69d66fd23345eb53b1d43b7e/multidict-6.9.1-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:0a5769559e3312dd96731fbe15b4abb6033368ac1cad5a98dadd21946a4c7d6c", size = 336455, upload-time = "2026-09-21T17:58:09.112Z" }, + { url = "https://files.pythonhosted.org/packages/cd/0d/bf33cb097380252b08e1177b5ae0cab822c47ce80d236f3f724953c76721/multidict-6.9.1-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:03fac50ddfd8302175b77863a015eccfae76767cda5506eef86df559ba861e1f", size = 305865, upload-time = "2026-09-21T17:58:10.921Z" }, + { url = "https://files.pythonhosted.org/packages/ba/ee/a2bd133391204b1cec5a5caf327dc9a06710439b7403220860a8fb164560/multidict-6.9.1-cp315-cp315-musllinux_1_2_s390x.whl", hash = "sha256:5ecace251ccfa705bf3d7d35c5032cf750f5c629809740405697bce5c118c4a4", size = 337531, upload-time = "2026-09-21T17:58:12.846Z" }, + { url = "https://files.pythonhosted.org/packages/a8/32/c0972486f81a06c3bbb23063c85afaac53c51608f7e35bcb101a1006408b/multidict-6.9.1-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:ecc89dbd4155b2f8a47f4bbd89242a35ed15e8e0ec581cab5ac65fa38407329d", size = 332464, upload-time = "2026-09-21T17:58:14.673Z" }, + { url = "https://files.pythonhosted.org/packages/69/4f/5cbbe852b45d8a7f0ab3ed042386e4894e463010eb230603596cb15d0fee/multidict-6.9.1-cp315-cp315-win32.whl", hash = "sha256:a3ffe881246d28a862f1985824f484cb7361f44d6b99c4c620436ef56462f38d", size = 51714, upload-time = "2026-09-21T17:58:16.409Z" }, + { url = "https://files.pythonhosted.org/packages/d4/77/1fa118386deeae4e7a48870fa5cb073e748b0ac5265a6990651cefc48068/multidict-6.9.1-cp315-cp315-win_amd64.whl", hash = "sha256:59c123d0e948d760a5f930f316cfefa07e8d632ab84327c0693ee6a88171154f", size = 58619, upload-time = "2026-09-21T17:58:18.369Z" }, + { url = "https://files.pythonhosted.org/packages/dd/ee/51c45748acfce9cb69d89dcfcd09c874b385407fd6993e885d6905659865/multidict-6.9.1-cp315-cp315-win_arm64.whl", hash = "sha256:31199204b3ced121ff5407a2c342326a5d27e3870abbf94bd80dbd2451b7bc8f", size = 53969, upload-time = "2026-09-21T17:58:20.102Z" }, + { url = "https://files.pythonhosted.org/packages/aa/57/89d2d3dedfae2558853c1770c7cbcdfd5211eb4c4090b1e8cb570544a490/multidict-6.9.1-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:8879510a76940670517ea1cb589978da44b86e286ec3e50d664ef330817afce7", size = 107679, upload-time = "2026-09-21T17:58:21.98Z" }, + { url = "https://files.pythonhosted.org/packages/c8/df/0c2a28870181c1762f90952b897f6db46c934ce073efe0442604cbc276db/multidict-6.9.1-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:aec65b53a07f580606593f877eefbb29a45939bfc0d3fe6e6d9f42b41b749f68", size = 64753, upload-time = "2026-09-21T17:58:23.622Z" }, + { url = "https://files.pythonhosted.org/packages/43/7e/9c6a3e7619459407d8958f7e56ab3dda7f0738f5aed9bb4ad48076e8de83/multidict-6.9.1-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:14c56f73e78faa1f68bbb826197cd5871994e70e841b8590829c35912ece5c64", size = 62732, upload-time = "2026-09-21T17:58:25.46Z" }, + { url = "https://files.pythonhosted.org/packages/38/eb/fd56c9d83ba0cdc3cf66f9acb278b24ef1f043b620b96d145685a3b57338/multidict-6.9.1-cp315-cp315t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:38c9986f9ce50c459b10de216a05f4bd7ed5ac63887d56e500a52bb464b861ce", size = 288648, upload-time = "2026-09-21T17:58:27.115Z" }, + { url = "https://files.pythonhosted.org/packages/df/ef/51e79c2442b0f56ac4ac580108d713078b31297e028d468fc220971a305d/multidict-6.9.1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:15db6a102cbaf1949cf028ecf080aac76d20bcd29ad4e092574db6c6b7af78a5", size = 304919, upload-time = "2026-09-21T17:58:29.143Z" }, + { url = "https://files.pythonhosted.org/packages/6f/e4/774700cc5739353fe88a7204ed30e78a9403d98d4bb2496cc91f096d2e71/multidict-6.9.1-cp315-cp315t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:bd82c4977196681a499bb6ca9e462afbc5c91c1c15b6a991dfbd72733fea4dd2", size = 289094, upload-time = "2026-09-21T17:58:30.938Z" }, + { url = "https://files.pythonhosted.org/packages/ca/41/0bec327bc3a8271825376b6d8a469d1f80e3ba1e2e730e019836e29663c3/multidict-6.9.1-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bb58ba73a3f96f9a3e46b1fab69929d7edbbddb3133ee74b5c3c54074a53c4f1", size = 312007, upload-time = "2026-09-21T17:58:32.964Z" }, + { url = "https://files.pythonhosted.org/packages/c3/7a/9906bf5f1fe20e8e755affccc1a69ecd8aebb079ac65386e5ffc8eefbe75/multidict-6.9.1-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7c6eecfab7ce4cd9487ff8ba936fe38cdfd68c04faf3d5c710363c6a8e695659", size = 314657, upload-time = "2026-09-21T17:58:35.285Z" }, + { url = "https://files.pythonhosted.org/packages/33/92/cf6d665a45663bbe216420fe632da10e9f4f842b07ce02bc3ddf8eb882b8/multidict-6.9.1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c62e71e6289d78c0108d8aeb495f8bd3cad4bc1632fedddc9297ddf287ecc20", size = 301563, upload-time = "2026-09-21T17:58:37.472Z" }, + { url = "https://files.pythonhosted.org/packages/97/4c/9f1b7945526905d58b4b2d422e2ea81326dda71f9bdc9c32c8002639234a/multidict-6.9.1-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:539c2cd5fed0947c135cd7eabaaac55f48300dfa1de0f3ca4edb5efa6606f471", size = 278540, upload-time = "2026-09-21T17:58:39.551Z" }, + { url = "https://files.pythonhosted.org/packages/5c/d9/133aa472fc1be181de29a0c2e1c4cd778280882f532b404395f646742e46/multidict-6.9.1-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:3100d169ceb7bc8f05f89a6db11d1b21f119975fc26f29dc45a472e3569f0879", size = 294858, upload-time = "2026-09-21T17:58:41.791Z" }, + { url = "https://files.pythonhosted.org/packages/bd/38/21f2305dd20ac5038fa581b5d7e0d8dbbd70dc6b50231c22ec173dacddda/multidict-6.9.1-cp315-cp315t-musllinux_1_2_armv7l.whl", hash = "sha256:696477ad71385c4795e3b8e4cf10b0d2c28c2a1ca6a955e031cb1e62993e9ee3", size = 285461, upload-time = "2026-09-21T17:58:43.844Z" }, + { url = "https://files.pythonhosted.org/packages/ad/21/465a43c214d1d7e2d0c974e727d4b5935f8a0868838b5df9d0984c83c1dc/multidict-6.9.1-cp315-cp315t-musllinux_1_2_i686.whl", hash = "sha256:f5844e7befc707367807586f550fa97e23dcfef0728f02b98c7bc498a961a5df", size = 288964, upload-time = "2026-09-21T17:58:46.16Z" }, + { url = "https://files.pythonhosted.org/packages/2d/58/72a3e8d56c1e05146d2d1841dbaacf8986375eded1e5a58d30eef191a580/multidict-6.9.1-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:abc7c2e4b47bfe6a9aea434d3fdebb9597ee636e914e92ba352f2068b9142f4c", size = 303924, upload-time = "2026-09-21T17:58:48.395Z" }, + { url = "https://files.pythonhosted.org/packages/6f/b9/911084c04530a682a54536b4f738d3992a593b5ff6fea1d6a1f02f3acc6b/multidict-6.9.1-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:7ab379f95caee071a37cbd8be86d4c65accc651d391f9f97748fef006f38769c", size = 278479, upload-time = "2026-09-21T17:58:50.494Z" }, + { url = "https://files.pythonhosted.org/packages/45/eb/9a333346c02c928a9e82534638bce85697c10c46b4901fcd70af19357356/multidict-6.9.1-cp315-cp315t-musllinux_1_2_s390x.whl", hash = "sha256:557a4e1708df428ebe6c3081c83a273d275dad2446ce0d81fc648ac71afdb18d", size = 301650, upload-time = "2026-09-21T17:58:52.554Z" }, + { url = "https://files.pythonhosted.org/packages/67/2f/1d936c4e45c8199db6082b6836e9182e31aa393de0de652637790831ca4b/multidict-6.9.1-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:475d04d5192eba487a3e2f935976340baa24529046e9c1c9c7a3b7bf80445ae1", size = 298024, upload-time = "2026-09-21T17:58:55.03Z" }, + { url = "https://files.pythonhosted.org/packages/a4/0c/ca62ae2882b89a4cfeb0bbca873a4afdb5fc32994c4f8a37a7cb52ede7a0/multidict-6.9.1-cp315-cp315t-win32.whl", hash = "sha256:10083a8a0f4e1b26b599889e90b9802504ce5d3f7722f925bbb7ca47dd22a7c1", size = 57810, upload-time = "2026-09-21T17:58:57.141Z" }, + { url = "https://files.pythonhosted.org/packages/02/8b/b2c2805c3eb6fa4cdf5512fb95ac6174dde71e34dd601c5be52f4df5dc82/multidict-6.9.1-cp315-cp315t-win_amd64.whl", hash = "sha256:e96ca64383efa107262ee3949f047af5ee4f1845ba09463466c04d35a83bd3ec", size = 64984, upload-time = "2026-09-21T17:58:59.446Z" }, + { url = "https://files.pythonhosted.org/packages/fd/34/03f1d204d698c408f4754c969882609b6b7a902c0e3d16a7033f219cdeda/multidict-6.9.1-cp315-cp315t-win_arm64.whl", hash = "sha256:501ed8b02a5990c67a91c732843609d43a6be1f7576fcdfc867331239f37fbd3", size = 58742, upload-time = "2026-09-21T17:59:01.726Z" }, + { url = "https://files.pythonhosted.org/packages/be/59/e26cb779be4c591d1a910f59d29aca9fba4de70349840a833beba2652371/multidict-6.9.1-py3-none-any.whl", hash = "sha256:7bf6478188f4e47bf5686e8a33da4ae28bf43b1b2528d9ee144d28492bfac60b", size = 19176, upload-time = "2026-09-21T17:59:03.501Z" }, ] [[package]] @@ -2113,14 +2156,14 @@ wheels = [ [[package]] name = "pyjwt" -version = "2.13.0" +version = "2.15.1" source = { registry = "https://pypi.org/simple/" } dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/3b/81/58d0ac84e1ef3a3843791d6954d94c0b33d526c75eeb1efbce9d0a4c4077/pyjwt-2.13.0.tar.gz", hash = "sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423", size = 107515, upload-time = "2026-05-21T19:54:36.618Z" } +sdist = { url = "https://files.pythonhosted.org/packages/43/ea/5194e52748b0da83d71e082d75496eaec6e58f419f5e184786ded517e6a9/pyjwt-2.15.1.tar.gz", hash = "sha256:4f259e80cdfb6b3fc18a7de51fd1ef9ec79652f25019bae68975ca2468a34df8", size = 121252, upload-time = "2026-09-28T18:40:42.598Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a3/5e/ecf12fdb62546d64385c158514e9b2b671f7832108ef2ecd2020ce0af2d1/pyjwt-2.13.0-py3-none-any.whl", hash = "sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728", size = 31274, upload-time = "2026-05-21T19:54:35.362Z" }, + { url = "https://files.pythonhosted.org/packages/50/ca/44de4e75f8aadc457f0634be3b542815078ded46dca30efb960edeecad6e/pyjwt-2.15.1-py3-none-any.whl", hash = "sha256:42d59d631f7768a1028a64c7ff581a9bf7519804daf91fc5b6c56e30eec5e193", size = 33860, upload-time = "2026-09-28T18:40:41.429Z" }, ] [package.optional-dependencies] @@ -2805,11 +2848,11 @@ wheels = [ [[package]] name = "urllib3" -version = "2.7.0" +version = "2.8.0" source = { registry = "https://pypi.org/simple/" } -sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602, upload-time = "2026-05-07T16:13:18.596Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/05/b17359e1cefb4f909b5e40b1b90a496d987258916dbbf88e842c729f510e/urllib3-2.8.0.tar.gz", hash = "sha256:63bf2ead4c879426ebf22ef2a781eeb4aa3b4ae798a0435506f8687fd5bb9b63", size = 458972, upload-time = "2026-09-15T19:29:36.253Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087, upload-time = "2026-05-07T16:13:17.151Z" }, + { url = "https://files.pythonhosted.org/packages/92/9d/c4e665119135114480843e7ab388fa94d8480650450e6f8e26b70d323a4c/urllib3-2.8.0-py3-none-any.whl", hash = "sha256:0cf3cae568d36aa9576b28dfb35f11328f1cb974ca7647d9475ebb86c75ac6e3", size = 135717, upload-time = "2026-09-15T19:29:34.577Z" }, ] [[package]] From 3ffaac7bda87d7f5bc4db652d20aab2d663e5512 Mon Sep 17 00:00:00 2001 From: andreaonofrei01 Date: Tue, 6 Oct 2026 17:48:30 +0200 Subject: [PATCH 2/2] chore: keep the published migration guide and drop the connector id overlay --- .speakeasy/connector-id-or-name-overlay.yaml | 11 ----------- .speakeasy/workflow.lock | 2 -- MIGRATION.md | 15 +++++++++++++++ 3 files changed, 15 insertions(+), 13 deletions(-) delete mode 100644 .speakeasy/connector-id-or-name-overlay.yaml diff --git a/.speakeasy/connector-id-or-name-overlay.yaml b/.speakeasy/connector-id-or-name-overlay.yaml deleted file mode 100644 index 21d4b11c0..000000000 --- a/.speakeasy/connector-id-or-name-overlay.yaml +++ /dev/null @@ -1,11 +0,0 @@ -overlay: 1.0.0 -info: - title: Keep connector ID-or-name parameters as strings - version: 1.0.0 -actions: - - target: $.paths..[?(@.name == 'connector_id_or_name')].schema.anyOf - description: Connector names are not UUIDs, so this parameter cannot be UUID-only. - remove: true - - target: $.paths..[?(@.name == 'connector_id_or_name')].schema - update: - type: string diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 86f75fe3e..515eaa7a7 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -56,8 +56,6 @@ workflow: mistral-openapi: inputs: - location: ../openapi/specs/v2/main-sdk.yaml - overlays: - - location: .speakeasy/connector-id-or-name-overlay.yaml registry: location: registry.speakeasyapi.dev/mistral-dev/mistral-dev/mistral-openapi targets: diff --git a/MIGRATION.md b/MIGRATION.md index 099839d1a..629163254 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -23,6 +23,21 @@ The SDK depends on `httpx2` instead of `httpx`, and the `agents` extra on `mcp>= - `mistral.beta.connectors.http_client()` returns an `httpx2.AsyncClient`. - MCP results use MCP 2.2 field names, e.g. `structured_content` instead of `structuredContent`. +## Service-Account Authentication + +`Mistral()` reads a service-account token from the file at `MISTRAL_SA_TOKEN_PATH` when one is configured. Credentials resolve in this order: + +1. An `Authorization` header you set yourself, through `http_headers` or per request +2. An explicit `api_key` or `security` passed to the client +3. The token file at `MISTRAL_SA_TOKEN_PATH` +4. `MISTRAL_API_KEY` + +Set both `MISTRAL_SA_TOKEN_PATH` and `MISTRAL_API_KEY` and the token file wins, so an environment carrying both authenticates as the service account where v2 used the API key. + +The file is re-read on every request so rotation is picked up without a restart. If `MISTRAL_SA_TOKEN_PATH` is set but the file is missing, unreadable or empty, every request that would otherwise use the token file or `MISTRAL_API_KEY` raises `ServiceAccountTokenError`, with no fallback; unset the variable rather than leaving it pointing at a path that does not exist. An explicit `api_key` or `security` short-circuits the lookup, so it is unaffected. + +The token is sent to whatever `server_url` the client is configured with. `MistralAzure` and `MistralGCP` do not read it. + ## Chat and Agents Completions `chat.complete`, `chat.stream`, `agents.complete` and `agents.stream` no longer accept the `web_search`, `web_search_premium` and `code_interpreter` tools. Use them through the Conversations API (`beta.conversations`) or an agent created with `beta.agents.create`, where `WebSearchTool`, `WebSearchPremiumTool` and `CodeInterpreterTool` remain available.