From 7c7d3f3a3f135c65d35c5cce8cec8dce496bd8ef Mon Sep 17 00:00:00 2001 From: Jonah Eisen Date: Fri, 30 Oct 2026 10:50:07 -0700 Subject: [PATCH] fix: Preserve unknown API enum values New server enum values can make successful API responses fail during parsing, including project lookups with a capability_based creator role. Preserve known enum members and carry unfamiliar values as raw strings or integers so reading and serializing newer responses stays compatible. Generate explicit enum-or-primitive field types while retaining constants and explicitly closed enums. Keep collaborator roles and generic providers usable, and report unsupported evaluator types instead of guessing their implementation. No API changes are required. --- ARCHITECTURE.md | 6 + CHANGELOG.md | 5 + README.md | 10 + .../union_property.py.jinja | 15 +- scripts/auto-generate-api-client.sh | 7 +- scripts/prepare_open_enums.py | 102 +++++++++++ src/splunk_ao/collaborator.py | 21 ++- src/splunk_ao/evaluator.py | 7 +- src/splunk_ao/integration.py | 2 +- src/splunk_ao/project.py | 4 +- src/splunk_ao/projects.py | 8 +- src/splunk_ao/provider.py | 11 +- .../data/get_scorer_scorers_scorer_id_get.py | 32 ++-- ..._scorers_with_filters_scorers_list_post.py | 32 ++-- .../datasets/create_dataset_datasets_post.py | 30 +-- .../datasets/list_datasets_datasets_get.py | 28 ++- .../query_datasets_datasets_query_post.py | 28 ++- ...te_integration_integrations_name_delete.py | 20 +- ..._billing_usage_billing_usage_metric_get.py | 42 +++-- ...on_costs_integrations_costs_summary_get.py | 24 ++- .../get_integration_integrations_name_get.py | 18 +- ...ion_status_integrations_name_status_get.py | 18 +- ...integrations_llm_integration_models_get.py | 22 ++- ...tions_llm_integration_scorer_models_get.py | 22 ++- ...ons_projects_project_id_runs_run_id_get.py | 24 ++- ...ons_and_model_info_llm_integrations_get.py | 24 ++- .../get_all_projects_projects_all_get.py | 18 +- ...jects_paginated_projects_paginated_post.py | 28 ++- .../api/projects/get_projects_projects_get.py | 18 +- .../resources/models/action_result.py | 28 ++- src/splunk_ao/resources/models/agent_span.py | 34 +++- .../models/agentic_session_success_scorer.py | 34 +++- .../models/agentic_workflow_success_scorer.py | 34 +++- .../models/aggregated_trace_view_node.py | 25 ++- .../annotation_queue_created_at_filter.py | 26 ++- .../models/annotation_queue_export_request.py | 34 +++- .../models/annotation_queue_id_filter.py | 34 +++- .../models/annotation_queue_name_filter.py | 26 ++- .../annotation_queue_num_annotators_filter.py | 26 ++- ...annotation_queue_num_log_records_filter.py | 26 ++- .../annotation_queue_num_templates_filter.py | 26 ++- .../annotation_queue_num_users_filter.py | 26 ++- ...nnotation_queue_overall_progress_filter.py | 26 ++- .../annotation_queue_updated_at_filter.py | 26 ++- ...notation_queue_user_collaborator_create.py | 35 +++- ...notation_queue_user_collaborator_update.py | 26 ++- .../models/annotation_rating_info.py | 26 ++- .../resources/models/anthropic_integration.py | 34 +++- .../models/anthropic_integration_create.py | 34 +++- .../models/available_integrations.py | 28 ++- .../models/aws_bedrock_integration.py | 34 +++- .../models/aws_sage_maker_integration.py | 35 +++- .../aws_sage_maker_integration_create.py | 34 +++- .../resources/models/azure_integration.py | 34 +++- .../models/azure_integration_create.py | 34 +++- .../models/base_aws_integration_create.py | 34 +++- .../models/base_finetuned_scorer_db.py | 32 ++-- .../models/base_metric_roll_up_config_db.py | 32 +++- src/splunk_ao/resources/models/base_scorer.py | 172 +++++++++++++----- .../models/base_scorer_version_db.py | 20 +- .../models/base_scorer_version_response.py | 20 +- .../models/billing_usage_response.py | 26 ++- .../models/boolean_color_constraint.py | 26 ++- .../resources/models/bucketed_metric.py | 20 +- .../models/categorical_color_constraint.py | 51 +++++- .../chunk_attribution_utilization_scorer.py | 35 +++- .../code_metric_generation_status_response.py | 25 ++- .../models/collaborator_role_info.py | 28 ++- .../resources/models/collaborator_update.py | 28 ++- src/splunk_ao/resources/models/column_info.py | 75 ++++++-- .../resources/models/completeness_scorer.py | 34 +++- .../models/compute_health_score_request.py | 57 ++++-- .../models/context_adherence_scorer.py | 34 +++- .../resources/models/control_applies_to.py | 3 + .../resources/models/control_result.py | 26 ++- .../resources/models/control_span.py | 20 +- .../create_code_metric_generation_request.py | 10 +- .../create_code_metric_generation_response.py | 27 ++- ...eate_custom_luna_scorer_version_request.py | 32 ++-- .../create_decision_scorer_version_request.py | 20 +- .../resources/models/create_job_request.py | 38 +++- .../resources/models/create_job_response.py | 38 +++- .../create_llm_scorer_autogen_request.py | 25 ++- .../create_llm_scorer_version_request.py | 20 +- .../resources/models/create_scorer_request.py | 97 +++++++--- .../models/create_scorer_version_request.py | 20 +- ...reate_update_registered_scorer_response.py | 10 +- ...ized_agentic_session_success_gpt_scorer.py | 172 +++++++++++++----- ...zed_agentic_workflow_success_gpt_scorer.py | 172 +++++++++++++----- ...hunk_attribution_utilization_gpt_scorer.py | 172 +++++++++++++----- .../customized_completeness_gpt_scorer.py | 172 +++++++++++++----- .../customized_factuality_gpt_scorer.py | 172 +++++++++++++----- ...mized_ground_truth_adherence_gpt_scorer.py | 172 +++++++++++++----- .../customized_groundedness_gpt_scorer.py | 172 +++++++++++++----- .../customized_input_sexist_gpt_scorer.py | 172 +++++++++++++----- .../customized_input_toxicity_gpt_scorer.py | 172 +++++++++++++----- ...omized_instruction_adherence_gpt_scorer.py | 172 +++++++++++++----- .../customized_prompt_injection_gpt_scorer.py | 172 +++++++++++++----- .../models/customized_sexist_gpt_scorer.py | 172 +++++++++++++----- .../customized_tool_error_rate_gpt_scorer.py | 172 +++++++++++++----- ...mized_tool_selection_quality_gpt_scorer.py | 172 +++++++++++++----- .../models/customized_toxicity_gpt_scorer.py | 172 +++++++++++++----- .../models/dataset_content_filter.py | 36 ++-- .../resources/models/dataset_draft_filter.py | 34 +++- .../resources/models/dataset_id_filter.py | 34 +++- .../resources/models/dataset_name_filter.py | 26 ++- .../models/experiment_group_name_filter.py | 26 ++- .../resources/models/experiment_response.py | 27 ++- .../models/extended_agent_span_record.py | 62 +++++-- ...xtended_agent_span_record_with_children.py | 62 +++++-- .../models/extended_control_span_record.py | 48 +++-- .../models/extended_llm_span_record.py | 28 ++- .../models/extended_retriever_span_record.py | 28 ++- ...ded_retriever_span_record_with_children.py | 28 ++- .../models/extended_session_record.py | 28 ++- .../extended_session_record_with_children.py | 28 ++- .../models/extended_tool_span_record.py | 28 ++- ...extended_tool_span_record_with_children.py | 28 ++- .../resources/models/extended_trace_record.py | 28 ++- .../extended_trace_record_with_children.py | 28 ++- .../models/extended_workflow_span_record.py | 28 ++- ...nded_workflow_span_record_with_children.py | 28 ++- .../resources/models/feedback_rating_info.py | 26 ++- .../resources/models/file_metadata.py | 75 ++++++-- .../models/fine_tuned_scorer_response.py | 32 ++-- .../models/generated_scorer_configuration.py | 68 +++++-- .../models/generated_scorer_response.py | 32 +++- .../resources/models/group_collaborator.py | 27 ++- .../models/group_collaborator_create.py | 36 ++-- .../resources/models/health_score_result.py | 10 +- src/splunk_ao/resources/models/histogram.py | 26 ++- .../models/image_generation_event.py | 10 +- .../resources/models/input_sexist_scorer.py | 34 +++- .../resources/models/input_toxicity_scorer.py | 34 +++- .../resources/models/insight_summary.py | 10 +- .../resources/models/integration_db.py | 27 ++- .../models/integration_models_response.py | 25 ++- .../resources/models/internal_tool_call.py | 10 +- .../resources/models/invoke_response.py | 34 +++- .../models/log_records_boolean_filter.py | 34 +++- .../models/log_records_collection_filter.py | 25 ++- .../models/log_records_column_info.py | 107 +++++++---- .../models/log_records_date_filter.py | 25 ++- .../models/log_records_export_request.py | 63 +++++-- .../resources/models/log_records_id_filter.py | 34 +++- .../models/log_records_number_filter.py | 25 ++- .../models/log_records_text_filter.py | 25 ++- .../models/log_span_update_request.py | 34 +++- .../models/log_spans_ingest_request.py | 34 +++- .../models/log_trace_update_request.py | 34 +++- .../models/log_traces_ingest_request.py | 34 +++- .../models/mcp_approval_request_event.py | 10 +- .../resources/models/mcp_call_event.py | 10 +- .../resources/models/mcp_list_tools_event.py | 10 +- src/splunk_ao/resources/models/message.py | 25 ++- .../resources/models/message_event.py | 36 +++- .../resources/models/messages_list_item.py | 2 + .../resources/models/metadata_filter.py | 26 ++- .../models/metric_aggregation_detail.py | 27 ++- .../resources/models/metric_computation.py | 10 +- .../resources/models/metric_computing.py | 10 +- .../resources/models/metric_error.py | 10 +- .../resources/models/metric_failed.py | 10 +- .../resources/models/metric_not_applicable.py | 10 +- .../resources/models/metric_not_computed.py | 10 +- .../resources/models/metric_pending.py | 10 +- .../resources/models/metric_roll_up.py | 10 +- .../resources/models/metric_success.py | 10 +- ...trics_testing_available_columns_request.py | 10 +- .../resources/models/modality_filter.py | 26 ++- src/splunk_ao/resources/models/model.py | 96 +++++++--- .../resources/models/model_properties.py | 56 +++++- .../resources/models/node_name_filter.py | 26 ++- .../models/numeric_color_constraint.py | 51 +++++- .../resources/models/output_sexist_scorer.py | 34 +++- .../models/output_toxicity_scorer.py | 34 +++- .../partial_extended_agent_span_record.py | 62 +++++-- .../partial_extended_control_span_record.py | 48 +++-- .../partial_extended_llm_span_record.py | 28 ++- .../partial_extended_retriever_span_record.py | 28 ++- .../models/partial_extended_session_record.py | 28 ++- .../partial_extended_tool_span_record.py | 28 ++- .../models/partial_extended_trace_record.py | 28 ++- .../partial_extended_workflow_span_record.py | 28 ++- src/splunk_ao/resources/models/permission.py | 39 +++- .../resources/models/project_create.py | 34 +++- .../models/project_create_response.py | 10 +- .../models/project_created_at_filter.py | 26 ++- .../models/project_creator_filter.py | 34 +++- src/splunk_ao/resources/models/project_db.py | 10 +- .../resources/models/project_db_thin.py | 10 +- .../resources/models/project_id_filter.py | 34 +++- .../resources/models/project_name_filter.py | 26 ++- .../resources/models/project_runs_filter.py | 26 ++- .../resources/models/project_type_filter.py | 26 ++- .../models/project_update_response.py | 10 +- .../models/project_updated_at_filter.py | 26 ++- .../models/prompt_injection_scorer.py | 34 +++- .../prompt_template_created_by_filter.py | 35 +++- .../models/prompt_template_name_filter.py | 26 ++- .../resources/models/protect_response.py | 36 ++-- .../resources/models/reasoning_event.py | 10 +- .../registered_scorer_task_result_response.py | 25 ++- src/splunk_ao/resources/models/rule.py | 25 ++- src/splunk_ao/resources/models/rule_result.py | 59 ++++-- .../resources/models/ruleset_result.py | 35 +++- .../resources/models/run_created_at_filter.py | 26 ++- .../resources/models/run_created_by_filter.py | 34 +++- src/splunk_ao/resources/models/run_db.py | 10 +- src/splunk_ao/resources/models/run_db_thin.py | 10 +- .../resources/models/run_id_filter.py | 34 +++- .../resources/models/run_name_filter.py | 26 ++- .../resources/models/run_updated_at_filter.py | 26 ++- .../resources/models/scorer_config.py | 101 +++++++--- .../models/scorer_created_at_filter.py | 26 ++- .../resources/models/scorer_creator_filter.py | 34 +++- .../resources/models/scorer_defaults.py | 20 +- .../resources/models/scorer_id_filter.py | 34 +++- .../models/scorer_is_global_filter.py | 34 +++- .../resources/models/scorer_label_filter.py | 26 ++- .../models/scorer_model_type_filter.py | 26 ++- .../scorer_multimodal_capabilities_filter.py | 26 ++- .../resources/models/scorer_name_filter.py | 26 ++- .../resources/models/scorer_response.py | 97 +++++++--- .../scorer_scoreable_node_types_filter.py | 26 ++- .../resources/models/scorer_tags_filter.py | 26 ++- .../resources/models/scorer_type_filter.py | 26 ++- .../models/scorer_updated_at_filter.py | 26 ++- .../models/session_create_request.py | 34 +++- src/splunk_ao/resources/models/stage_db.py | 34 +++- .../resources/models/stage_metadata.py | 27 ++- .../resources/models/stage_with_rulesets.py | 34 +++- .../resources/models/standard_error.py | 50 ++++- .../resources/models/subscription_config.py | 32 +++- .../synthetic_dataset_extension_request.py | 30 ++- .../resources/models/system_metric_info.py | 10 +- src/splunk_ao/resources/models/test_score.py | 26 ++- .../models/tool_error_rate_scorer.py | 34 +++- .../models/tool_selection_quality_scorer.py | 34 +++- .../resources/models/update_scorer_request.py | 72 +++++--- .../user_annotation_queue_collaborator.py | 25 ++- .../resources/models/user_collaborator.py | 25 ++- .../models/user_collaborator_create.py | 35 +++- src/splunk_ao/resources/models/user_db.py | 68 +++++-- .../resources/models/valid_result.py | 36 +++- .../resources/models/web_search_call_event.py | 10 +- src/splunk_ao/shared/column.py | 6 +- tests/test_api_client_integration.py | 66 +++++++ tests/test_api_enums.py | 165 +++++++++++++++++ tests/test_column.py | 2 + tests/test_evaluator.py | 41 ++++- tests/test_integration.py | 19 +- tests/test_prepare_open_enums.py | 97 ++++++++++ tests/test_project.py | 15 +- 254 files changed, 7555 insertions(+), 2414 deletions(-) create mode 100644 scripts/prepare_open_enums.py create mode 100644 tests/test_api_enums.py create mode 100644 tests/test_prepare_open_enums.py diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index cda7b73c..19530b4e 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -238,6 +238,12 @@ change the source contract, template, or post-processing step and regenerate onl The generated client is not a deployment-aware public facade. Public operations should select deployment/auth through SDK configuration, then call the appropriate generated transport internally. +Before generation, `scripts/prepare_open_enums.py` expands enum uses to a union of the existing enum and its primitive +type in a temporary copy of the spec. Known values remain enum members. Unfamiliar values remain strings or integers +and serialize unchanged. The checked-in spec and enum classes stay unchanged. Single-value constants remain closed, +as do enums explicitly marked `x-ms-enum.modelAsString: false`. The union template checks the primitive type before +accepting an unknown value. SDK operations that select behavior must handle unsupported values explicitly. + ## Test Architecture Root pytest configuration enables xdist, disables non-local sockets, injects fake credentials, and sets timeouts. diff --git a/CHANGELOG.md b/CHANGELOG.md index af0e5b02..a0b81955 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - CrewAI run IDs are now derived from SHA-256 (as RFC 4122 version 4 UUIDs) instead of MD5, resolving a SAST finding. IDs for the same inputs differ from earlier releases. +- Generated API parsers preserve unfamiliar string and integer enum values from newer servers, + including nested run creator roles and permission actions. Known values remain enum members. + Unknown values remain raw strings or integers and serialize unchanged. Generated type hints + include those primitive alternatives. Constants and explicitly closed enums stay strict. +- Evaluator lookup reports unsupported scorer types explicitly instead of treating them as built-in evaluators. ## [0.6.1] diff --git a/README.md b/README.md index 0199c87c..92ad794c 100644 --- a/README.md +++ b/README.md @@ -690,6 +690,16 @@ with splunk_ao_context( ... ``` +### API enum compatibility + +API enum fields can contain values added after your SDK version was released. Known values remain enum members. +Unfamiliar values remain strings or integers, and generated type hints include those alternatives. Reading and +serializing these values preserves them exactly. You can also send new enum values as their raw strings or integers +for the service to validate. Single-value constants and explicitly closed enums retain their fixed alternatives. + +SDK operations that need a specific implementation can still reject an unsupported value. For example, evaluator +lookup reports an unsupported scorer type and asks you to upgrade instead of guessing its implementation. + ## Contributing See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and guidelines and diff --git a/codegen_templates/property_templates/union_property.py.jinja b/codegen_templates/property_templates/union_property.py.jinja index be19f06b..23d321dc 100644 --- a/codegen_templates/property_templates/union_property.py.jinja +++ b/codegen_templates/property_templates/union_property.py.jinja @@ -66,11 +66,20 @@ def _parse_{{ property.python_name }}(data: object) -> {{ property.get_type_stri # Fallback to standard union parsing {% endif %} - {% set ns = namespace(contains_unmodified_properties = false) %} + {% set ns = namespace(contains_unmodified_properties=false, has_enum=false, raw_types=[], can_check_raw=true) %} {% for inner_property in property.inner_properties %} {% import "property_templates/" + inner_property.template as inner_template %} + {% if inner_property.template == "enum_property.py.jinja" %} + {% set ns.has_enum = true %} + {% endif %} {% if not inner_template.construct %} {% set ns.contains_unmodified_properties = true %} + {% set raw_type = inner_property.get_instance_type_string() %} + {% if raw_type in ["str", "int", "float", "bool"] %} + {% set ns.raw_types = ns.raw_types + [raw_type] %} + {% elif raw_type not in ["None", "Unset"] %} + {% set ns.can_check_raw = false %} + {% endif %} {% continue %} {% endif %} {% if has_extended_records %}{# For Extended*Record unions, always wrap in try-except #} @@ -109,6 +118,10 @@ def _parse_{{ property.python_name }}(data: object) -> {{ property.get_type_stri {% endif %} {% endfor %} {% if ns.contains_unmodified_properties %} + {% if ns.has_enum and ns.can_check_raw and ns.raw_types %} + if type(data) not in ({{ ns.raw_types | unique | join(", ") }},): + raise TypeError("Unexpected value type for {{ property.python_name }}") + {% endif %} return cast({{ property.get_type_string() }}, data) {% elif has_extended_records %} # If we reach here, none of the parsers succeeded diff --git a/scripts/auto-generate-api-client.sh b/scripts/auto-generate-api-client.sh index e62a649d..ed43be32 100755 --- a/scripts/auto-generate-api-client.sh +++ b/scripts/auto-generate-api-client.sh @@ -17,11 +17,16 @@ echo "$HOME_DIR" cd "$HOME_DIR" +GENERATION_DIR=$(mktemp -d "${TMPDIR:-/tmp}/splunk-ao-open-enums.XXXXXX") +GENERATION_SPEC="$GENERATION_DIR/openapi.json" +trap 'rm -r "$GENERATION_DIR"' EXIT +poetry run python "$HOME_DIR/prepare_open_enums.py" "$OPENAPI_SPEC_PATH" "$GENERATION_SPEC" + # Backup the current output path mv "$OUTPUT_PATH" "$OUTPUT_PATH"_backup # Run the OpenAPI Python client generator -poetry run openapi-python-client generate --meta none --path "$OPENAPI_SPEC_PATH" --output-path "$OUTPUT_PATH" --custom-template-path ../codegen_templates --config "$CONFIG_PATH" --overwrite +poetry run openapi-python-client generate --meta none --path "$GENERATION_SPEC" --output-path "$OUTPUT_PATH" --custom-template-path ../codegen_templates --config "$CONFIG_PATH" --overwrite # Remove the backup directory rm -r "$OUTPUT_PATH"_backup diff --git a/scripts/prepare_open_enums.py b/scripts/prepare_open_enums.py new file mode 100644 index 00000000..7ae71cec --- /dev/null +++ b/scripts/prepare_open_enums.py @@ -0,0 +1,102 @@ +"""Expand extensible enum uses for SDK generation without changing their classes.""" + +from __future__ import annotations + +import argparse +import json +from copy import deepcopy +from pathlib import Path +from typing import Any + +import yaml + + +def prepare_open_enums(document: dict[str, Any]) -> dict[str, Any]: + """Allow raw values alongside known string and integer enum members. + + Named enum definitions remain unchanged, so existing enum classes and + constants keep their names. Single-value enums remain constants. An API + contract can explicitly close an enum with x-ms-enum.modelAsString=false. + """ + schemas = document.get("components", {}).get("schemas", {}) + + def enum_type(schema: dict[str, Any]) -> str | None: + """Return the primitive type when a schema declares an open enum.""" + if not isinstance(schema, dict): + return None + if schema.get("x-ms-enum", {}).get("modelAsString") is False: + return None + values = [value for value in schema.get("enum", []) if value is not None] + kind = schema.get("type") + if len(values) > 1 and kind in ("string", "integer"): + return kind + return None + + references = { + f"#/components/schemas/{name}": kind + for name, schema in schemas.items() + if (kind := enum_type(schema)) is not None + } + + def open_type(schema: dict[str, Any]) -> str | None: + """Resolve inline enum schemas and local enum references.""" + if not isinstance(schema, dict): + return None + return references.get(schema.get("$ref")) or enum_type(schema) + + def expand(value: Any, expand_enum: bool = True) -> Any: + """Add primitive alternatives after known alternatives in each union.""" + if isinstance(value, list): + return [expand(item) for item in value] + if not isinstance(value, dict): + return value + + kind = open_type(value) if expand_enum else None + if kind is not None: + annotations = {key: deepcopy(item) for key, item in value.items() if key not in ("$ref", "enum", "type")} + # The generator ignores defaults beside a direct reference. Keep + # that existing constructor behavior when wrapping the reference. + if "$ref" in value: + annotations.pop("default", None) + return {**annotations, "anyOf": [deepcopy(value), {"type": kind}]} + + result = {} + for key, item in value.items(): + if key not in ("anyOf", "oneOf"): + result[key] = expand(item) + continue + + alternatives = [] + kinds = [] + for alternative in item: + alternative_kind = open_type(alternative) + alternatives.append(expand(alternative, expand_enum=alternative_kind is None)) + if alternative_kind is not None and alternative_kind not in kinds: + kinds.append(alternative_kind) + for alternative_kind in kinds: + primitive = {"type": alternative_kind} + if primitive not in alternatives: + alternatives.append(primitive) + # The enum and its primitive overlap, which requires anyOf. + result["anyOf" if kinds else key] = alternatives + return result + + prepared = expand(document) + for name, schema in schemas.items(): + if enum_type(schema) is not None: + prepared["components"]["schemas"][name] = deepcopy(schema) + return prepared + + +def main() -> None: + """Write a temporary generation spec with extensible enum uses.""" + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("source", type=Path) + parser.add_argument("destination", type=Path) + args = parser.parse_args() + document = yaml.safe_load(args.source.read_text()) + args.destination.write_text(json.dumps(prepare_open_enums(document))) + + +if __name__ == "__main__": + main() diff --git a/src/splunk_ao/collaborator.py b/src/splunk_ao/collaborator.py index 9e59cb9f..79ad9554 100644 --- a/src/splunk_ao/collaborator.py +++ b/src/splunk_ao/collaborator.py @@ -1,6 +1,7 @@ from __future__ import annotations import logging +from contextlib import suppress from datetime import datetime from typing import Any @@ -28,7 +29,7 @@ class Collaborator: id (str): The unique identifier of this collaboration (UserProject ID). user_id (str): The ID of the user who has access to the project. project_id (str): The ID of the project this collaboration belongs to. - role (CollaboratorRole): The role assigned to the user (OWNER, EDITOR, VIEWER, ANNOTATOR). + role (CollaboratorRole | str): The collaboration role, including unfamiliar server values. created_at (datetime | None): When this collaboration was created. email (str | None): The user's email address. first_name (str | None): The user's first name. @@ -65,7 +66,7 @@ class Collaborator: _id: str _user_id: str _project_id: str - _role: CollaboratorRole + _role: CollaboratorRole | str _created_at: datetime | None _email: str | None _first_name: str | None @@ -78,7 +79,7 @@ def __init__( id: str, user_id: str, project_id: str, - role: CollaboratorRole, + role: CollaboratorRole | str, created_at: datetime | None = None, email: str | None = None, first_name: str | None = None, @@ -95,7 +96,7 @@ def __init__( id: The collaboration record ID. user_id: The user's ID. project_id: The project's ID. - role: The collaboration role (CollaboratorRole enum). + role: The collaboration role as an enum or raw server value. created_at: When the collaboration was created. email: The user's email address. first_name: The user's first name. @@ -130,7 +131,7 @@ def project_id(self) -> str: return self._project_id @property - def role(self) -> CollaboratorRole: + def role(self) -> CollaboratorRole | str: """Get the collaboration role.""" return self._role @@ -232,7 +233,7 @@ def to_dict(self) -> dict[str, Any]: "id": self._id, "user_id": self._user_id, "project_id": self._project_id, - "role": self._role.value, # Convert enum to string value + "role": str(self._role), "created_at": self._created_at.isoformat() if self._created_at else None, "email": self._email, "first_name": self._first_name, @@ -240,7 +241,7 @@ def to_dict(self) -> dict[str, Any]: "permissions": self._permissions, } - def update(self, role: CollaboratorRole) -> Collaborator: + def update(self, role: CollaboratorRole | str) -> Collaborator: """ Update this collaborator's role. @@ -248,7 +249,7 @@ def update(self, role: CollaboratorRole) -> Collaborator: instance remains unchanged (immutability is preserved). Args: - role: The new role to assign (CollaboratorRole enum). + role: The new role as an enum or raw value for the service to validate. Returns ------- @@ -330,10 +331,10 @@ def _from_api_response(cls, response: Any, project_id: str) -> Collaborator: for p in response.permissions ] - # Handle role - it should already be a CollaboratorRole enum from the API role = response.role if hasattr(response, "role") else CollaboratorRole.VIEWER if isinstance(role, str): - role = CollaboratorRole(role) + with suppress(ValueError): + role = CollaboratorRole(role) return cls( id=str(response.id), diff --git a/src/splunk_ao/evaluator.py b/src/splunk_ao/evaluator.py index 06133eea..2552ee5d 100644 --- a/src/splunk_ao/evaluator.py +++ b/src/splunk_ao/evaluator.py @@ -225,7 +225,7 @@ def _parse_output_type( return _map.get(output_type.lower(), default) @classmethod - def _create_metric_from_type(cls, scorer_type: ScorerTypes) -> Evaluator: + def _create_metric_from_type(cls, scorer_type: ScorerTypes | str) -> Evaluator: """ Create the appropriate Evaluator subclass instance based on scorer_type. @@ -251,8 +251,9 @@ def _create_metric_from_type(cls, scorer_type: ScorerTypes) -> Evaluator: return CodeEvaluator.__new__(CodeEvaluator) if scorer_type == ScorerTypes.DECISION: return DecisionEvaluator.__new__(DecisionEvaluator) - # Default to SplunkAOEvaluator for built-in scorers (LUNA, PRESET, etc.) - return SplunkAOEvaluator.__new__(SplunkAOEvaluator) + if scorer_type in (ScorerTypes.LUNA, ScorerTypes.PRESET): + return SplunkAOEvaluator.__new__(SplunkAOEvaluator) + raise APIError(f"Unsupported evaluator type: {scorer_type!r}. Upgrade splunk-ao to use this evaluator.") @classmethod def get(cls, *, id: str | None = None, name: str | None = None) -> Evaluator | None: diff --git a/src/splunk_ao/integration.py b/src/splunk_ao/integration.py index 0018d862..36f9e8ab 100644 --- a/src/splunk_ao/integration.py +++ b/src/splunk_ao/integration.py @@ -384,7 +384,7 @@ def _get_integration_by_name(cls, integration_provider: str) -> Provider | Uncon # Cast is safe because we checked for strings above providers = cast(list[Provider], providers_list) - matching = [p for p in providers if p._get_integration_provider().value == integration_provider] + matching = [p for p in providers if str(p._get_integration_provider()) == integration_provider] if not matching: logger.debug(f"Integration.{integration_provider}: No '{integration_provider}' integration configured.") diff --git a/src/splunk_ao/project.py b/src/splunk_ao/project.py index b4b2c6f8..d33952b9 100644 --- a/src/splunk_ao/project.py +++ b/src/splunk_ao/project.py @@ -554,7 +554,7 @@ def collaborators(self) -> builtins.list[Collaborator]: """ return self.list_collaborators() - def add_collaborator(self, user_id: str, role: CollaboratorRole = CollaboratorRole.VIEWER) -> Collaborator: + def add_collaborator(self, user_id: str, role: CollaboratorRole | str = CollaboratorRole.VIEWER) -> Collaborator: """ Add a collaborator to this project. @@ -604,7 +604,7 @@ def add_collaborator(self, user_id: str, role: CollaboratorRole = CollaboratorRo logger.error(f"Project.add_collaborator: project_id='{self.id}', user_id='{user_id}' - failed: {e}") raise APIError(f"Failed to add collaborator: {e}") from e - def update_collaborator(self, user_id: str, role: CollaboratorRole) -> Collaborator: + def update_collaborator(self, user_id: str, role: CollaboratorRole | str) -> Collaborator: """ Update a collaborator's role on this project. diff --git a/src/splunk_ao/projects.py b/src/splunk_ao/projects.py index 46ba8370..392044bd 100644 --- a/src/splunk_ao/projects.py +++ b/src/splunk_ao/projects.py @@ -306,7 +306,7 @@ def create(self, name: str) -> Project: return Project(project=response) def share_project_with_user( - self, project_id: str, user_id: str, role: CollaboratorRole = CollaboratorRole.VIEWER + self, project_id: str, user_id: str, role: CollaboratorRole | str = CollaboratorRole.VIEWER ) -> UserCollaborator: body = [UserCollaboratorCreate(user_id=user_id, role=role)] response = create_user_project_collaborators_projects_project_id_users_post.sync( @@ -350,7 +350,7 @@ def list_user_project_collaborators(self, project_id: str) -> builtins.list[User return all_collaborators def update_user_project_collaborator( - self, project_id: str, user_id: str, role: CollaboratorRole = CollaboratorRole.VIEWER + self, project_id: str, user_id: str, role: CollaboratorRole | str = CollaboratorRole.VIEWER ) -> UserCollaborator: body = CollaboratorUpdate(role=role) response = update_user_project_collaborator_projects_project_id_users_user_id_patch.sync( @@ -487,7 +487,7 @@ def create_project(name: str) -> Project: def share_project_with_user( - project_id: str, user_id: str, role: CollaboratorRole = CollaboratorRole.VIEWER + project_id: str, user_id: str, role: CollaboratorRole | str = CollaboratorRole.VIEWER ) -> UserCollaborator: """ Share a project with a user. @@ -541,7 +541,7 @@ def list_user_project_collaborators(project_id: str) -> list[UserCollaborator]: def update_user_project_collaborator( - project_id: str, user_id: str, role: CollaboratorRole = CollaboratorRole.VIEWER + project_id: str, user_id: str, role: CollaboratorRole | str = CollaboratorRole.VIEWER ) -> UserCollaborator: """ Update a user's role for a project. diff --git a/src/splunk_ao/provider.py b/src/splunk_ao/provider.py index b551097f..ea93bc6e 100644 --- a/src/splunk_ao/provider.py +++ b/src/splunk_ao/provider.py @@ -21,7 +21,6 @@ BaseAwsIntegrationCreate, HTTPValidationError, IntegrationProvider, - LLMIntegration, OpenAIIntegrationCreate, ) from splunk_ao.resources.types import Unset @@ -84,8 +83,8 @@ def __repr__(self) -> str: return f"{self.__class__.__name__}(name='{self.name}', id='{self.id}', is_selected={self.is_selected})" @abstractmethod - def _get_integration_provider(self) -> IntegrationProvider: - """Get the IntegrationProvider enum for this provider.""" + def _get_integration_provider(self) -> IntegrationProvider | str: + """Get the provider identifier, including unfamiliar server values.""" raise NotImplementedError def refresh(self) -> None: @@ -211,7 +210,7 @@ def models(self) -> list[Model]: # Get models from API response = get_available_models_llm_integrations_llm_integration_models_get.sync( - llm_integration=LLMIntegration(integration_provider.value), client=config.api_client + llm_integration=str(integration_provider), client=config.api_client ) if response is None or isinstance(response, HTTPValidationError): @@ -834,9 +833,9 @@ class GenericProvider(Provider): It does not support creation or updates through the SDK. """ - _integration_provider: IntegrationProvider + _integration_provider: IntegrationProvider | str - def _get_integration_provider(self) -> IntegrationProvider: + def _get_integration_provider(self) -> IntegrationProvider | str: return self._integration_provider diff --git a/src/splunk_ao/resources/api/data/get_scorer_scorers_scorer_id_get.py b/src/splunk_ao/resources/api/data/get_scorer_scorers_scorer_id_get.py index fffeae85..29a74c83 100644 --- a/src/splunk_ao/resources/api/data/get_scorer_scorers_scorer_id_get.py +++ b/src/splunk_ao/resources/api/data/get_scorer_scorers_scorer_id_get.py @@ -23,7 +23,7 @@ from ...types import UNSET, Response, Unset -def _get_kwargs(scorer_id: str, *, actions: list[ScorerAction] | Unset = UNSET) -> dict[str, Any]: +def _get_kwargs(scorer_id: str, *, actions: list[ScorerAction | str] | Unset = UNSET) -> dict[str, Any]: headers: dict[str, Any] = {} params: dict[str, Any] = {} @@ -32,7 +32,11 @@ def _get_kwargs(scorer_id: str, *, actions: list[ScorerAction] | Unset = UNSET) if not isinstance(actions, Unset): json_actions = [] for actions_item_data in actions: - actions_item = actions_item_data.value + actions_item: str + if isinstance(actions_item_data, ScorerAction): + actions_item = actions_item_data.value + else: + actions_item = actions_item_data json_actions.append(actions_item) params["actions"] = json_actions @@ -92,14 +96,14 @@ def _build_response(*, client: ApiClient, response: httpx.Response) -> Response[ def sync_detailed( - scorer_id: str, *, client: ApiClient, actions: list[ScorerAction] | Unset = UNSET + scorer_id: str, *, client: ApiClient, actions: list[ScorerAction | str] | Unset = UNSET ) -> Response[HTTPValidationError | ScorerResponse]: """Get Scorer Args: scorer_id (str): - actions (list[ScorerAction] | Unset): Actions to include in the 'permissions' field of the - scorer. + actions (list[ScorerAction | str] | Unset): Actions to include in the 'permissions' field + of the scorer. Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -117,14 +121,14 @@ def sync_detailed( def sync( - scorer_id: str, *, client: ApiClient, actions: list[ScorerAction] | Unset = UNSET + scorer_id: str, *, client: ApiClient, actions: list[ScorerAction | str] | Unset = UNSET ) -> Optional[HTTPValidationError | ScorerResponse]: """Get Scorer Args: scorer_id (str): - actions (list[ScorerAction] | Unset): Actions to include in the 'permissions' field of the - scorer. + actions (list[ScorerAction | str] | Unset): Actions to include in the 'permissions' field + of the scorer. Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -138,14 +142,14 @@ def sync( async def asyncio_detailed( - scorer_id: str, *, client: ApiClient, actions: list[ScorerAction] | Unset = UNSET + scorer_id: str, *, client: ApiClient, actions: list[ScorerAction | str] | Unset = UNSET ) -> Response[HTTPValidationError | ScorerResponse]: """Get Scorer Args: scorer_id (str): - actions (list[ScorerAction] | Unset): Actions to include in the 'permissions' field of the - scorer. + actions (list[ScorerAction | str] | Unset): Actions to include in the 'permissions' field + of the scorer. Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -163,14 +167,14 @@ async def asyncio_detailed( async def asyncio( - scorer_id: str, *, client: ApiClient, actions: list[ScorerAction] | Unset = UNSET + scorer_id: str, *, client: ApiClient, actions: list[ScorerAction | str] | Unset = UNSET ) -> Optional[HTTPValidationError | ScorerResponse]: """Get Scorer Args: scorer_id (str): - actions (list[ScorerAction] | Unset): Actions to include in the 'permissions' field of the - scorer. + actions (list[ScorerAction | str] | Unset): Actions to include in the 'permissions' field + of the scorer. Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. diff --git a/src/splunk_ao/resources/api/data/list_scorers_with_filters_scorers_list_post.py b/src/splunk_ao/resources/api/data/list_scorers_with_filters_scorers_list_post.py index ca39ac5c..369e3824 100644 --- a/src/splunk_ao/resources/api/data/list_scorers_with_filters_scorers_list_post.py +++ b/src/splunk_ao/resources/api/data/list_scorers_with_filters_scorers_list_post.py @@ -27,7 +27,7 @@ def _get_kwargs( *, body: ListScorersRequest, - actions: list[ScorerAction] | Unset = UNSET, + actions: list[ScorerAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> dict[str, Any]: @@ -39,7 +39,11 @@ def _get_kwargs( if not isinstance(actions, Unset): json_actions = [] for actions_item_data in actions: - actions_item = actions_item_data.value + actions_item: str + if isinstance(actions_item_data, ScorerAction): + actions_item = actions_item_data.value + else: + actions_item = actions_item_data json_actions.append(actions_item) params["actions"] = json_actions @@ -112,15 +116,15 @@ def sync_detailed( *, client: ApiClient, body: ListScorersRequest, - actions: list[ScorerAction] | Unset = UNSET, + actions: list[ScorerAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> Response[HTTPValidationError | ListScorersResponse]: """List Scorers With Filters Args: - actions (list[ScorerAction] | Unset): Actions to include in the 'permissions' field of the - scorers. + actions (list[ScorerAction | str] | Unset): Actions to include in the 'permissions' field + of the scorers. starting_token (int | Unset): Default: 0. limit (int | Unset): Default: 100. body (ListScorersRequest): @@ -144,15 +148,15 @@ def sync( *, client: ApiClient, body: ListScorersRequest, - actions: list[ScorerAction] | Unset = UNSET, + actions: list[ScorerAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> Optional[HTTPValidationError | ListScorersResponse]: """List Scorers With Filters Args: - actions (list[ScorerAction] | Unset): Actions to include in the 'permissions' field of the - scorers. + actions (list[ScorerAction | str] | Unset): Actions to include in the 'permissions' field + of the scorers. starting_token (int | Unset): Default: 0. limit (int | Unset): Default: 100. body (ListScorersRequest): @@ -172,15 +176,15 @@ async def asyncio_detailed( *, client: ApiClient, body: ListScorersRequest, - actions: list[ScorerAction] | Unset = UNSET, + actions: list[ScorerAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> Response[HTTPValidationError | ListScorersResponse]: """List Scorers With Filters Args: - actions (list[ScorerAction] | Unset): Actions to include in the 'permissions' field of the - scorers. + actions (list[ScorerAction | str] | Unset): Actions to include in the 'permissions' field + of the scorers. starting_token (int | Unset): Default: 0. limit (int | Unset): Default: 100. body (ListScorersRequest): @@ -204,15 +208,15 @@ async def asyncio( *, client: ApiClient, body: ListScorersRequest, - actions: list[ScorerAction] | Unset = UNSET, + actions: list[ScorerAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> Optional[HTTPValidationError | ListScorersResponse]: """List Scorers With Filters Args: - actions (list[ScorerAction] | Unset): Actions to include in the 'permissions' field of the - scorers. + actions (list[ScorerAction | str] | Unset): Actions to include in the 'permissions' field + of the scorers. starting_token (int | Unset): Default: 0. limit (int | Unset): Default: 100. body (ListScorersRequest): diff --git a/src/splunk_ao/resources/api/datasets/create_dataset_datasets_post.py b/src/splunk_ao/resources/api/datasets/create_dataset_datasets_post.py index e457778b..c2da8ca3 100644 --- a/src/splunk_ao/resources/api/datasets/create_dataset_datasets_post.py +++ b/src/splunk_ao/resources/api/datasets/create_dataset_datasets_post.py @@ -25,16 +25,22 @@ def _get_kwargs( - *, body: BodyCreateDatasetDatasetsPost | Unset, format_: DatasetFormat | Unset = UNSET, hidden: bool | Unset = False + *, + body: BodyCreateDatasetDatasetsPost | Unset, + format_: DatasetFormat | str | Unset = UNSET, + hidden: bool | Unset = False, ) -> dict[str, Any]: headers: dict[str, Any] = {} params: dict[str, Any] = {} - json_format_: str | Unset = UNSET - if not isinstance(format_, Unset): + json_format_: str | Unset + if isinstance(format_, Unset): + json_format_ = UNSET + elif isinstance(format_, DatasetFormat): json_format_ = format_.value - + else: + json_format_ = format_ params["format"] = json_format_ params["hidden"] = hidden @@ -99,7 +105,7 @@ def sync_detailed( *, client: ApiClient, body: BodyCreateDatasetDatasetsPost | Unset, - format_: DatasetFormat | Unset = UNSET, + format_: DatasetFormat | str | Unset = UNSET, hidden: bool | Unset = False, ) -> Response[DatasetDB | HTTPValidationError]: """Create Dataset @@ -107,7 +113,7 @@ def sync_detailed( Creates a standalone dataset. Args: - format_ (DatasetFormat | Unset): + format_ (DatasetFormat | str | Unset): hidden (bool | Unset): Default: False. body (BodyCreateDatasetDatasetsPost | Unset): @@ -130,7 +136,7 @@ def sync( *, client: ApiClient, body: BodyCreateDatasetDatasetsPost | Unset, - format_: DatasetFormat | Unset = UNSET, + format_: DatasetFormat | str | Unset = UNSET, hidden: bool | Unset = False, ) -> Optional[DatasetDB | HTTPValidationError]: """Create Dataset @@ -138,7 +144,7 @@ def sync( Creates a standalone dataset. Args: - format_ (DatasetFormat | Unset): + format_ (DatasetFormat | str | Unset): hidden (bool | Unset): Default: False. body (BodyCreateDatasetDatasetsPost | Unset): @@ -157,7 +163,7 @@ async def asyncio_detailed( *, client: ApiClient, body: BodyCreateDatasetDatasetsPost | Unset, - format_: DatasetFormat | Unset = UNSET, + format_: DatasetFormat | str | Unset = UNSET, hidden: bool | Unset = False, ) -> Response[DatasetDB | HTTPValidationError]: """Create Dataset @@ -165,7 +171,7 @@ async def asyncio_detailed( Creates a standalone dataset. Args: - format_ (DatasetFormat | Unset): + format_ (DatasetFormat | str | Unset): hidden (bool | Unset): Default: False. body (BodyCreateDatasetDatasetsPost | Unset): @@ -188,7 +194,7 @@ async def asyncio( *, client: ApiClient, body: BodyCreateDatasetDatasetsPost | Unset, - format_: DatasetFormat | Unset = UNSET, + format_: DatasetFormat | str | Unset = UNSET, hidden: bool | Unset = False, ) -> Optional[DatasetDB | HTTPValidationError]: """Create Dataset @@ -196,7 +202,7 @@ async def asyncio( Creates a standalone dataset. Args: - format_ (DatasetFormat | Unset): + format_ (DatasetFormat | str | Unset): hidden (bool | Unset): Default: False. body (BodyCreateDatasetDatasetsPost | Unset): diff --git a/src/splunk_ao/resources/api/datasets/list_datasets_datasets_get.py b/src/splunk_ao/resources/api/datasets/list_datasets_datasets_get.py index 2303d4df..03479be2 100644 --- a/src/splunk_ao/resources/api/datasets/list_datasets_datasets_get.py +++ b/src/splunk_ao/resources/api/datasets/list_datasets_datasets_get.py @@ -24,7 +24,7 @@ def _get_kwargs( - *, actions: list[DatasetAction] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100 + *, actions: list[DatasetAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100 ) -> dict[str, Any]: headers: dict[str, Any] = {} @@ -34,7 +34,11 @@ def _get_kwargs( if not isinstance(actions, Unset): json_actions = [] for actions_item_data in actions: - actions_item = actions_item_data.value + actions_item: str + if isinstance(actions_item_data, DatasetAction): + actions_item = actions_item_data.value + else: + actions_item = actions_item_data json_actions.append(actions_item) params["actions"] = json_actions @@ -101,14 +105,15 @@ def _build_response( def sync_detailed( *, client: ApiClient, - actions: list[DatasetAction] | Unset = UNSET, + actions: list[DatasetAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> Response[HTTPValidationError | ListDatasetResponse]: """List Datasets Args: - actions (list[DatasetAction] | Unset): Actions to include in the 'permissions' field. + actions (list[DatasetAction | str] | Unset): Actions to include in the 'permissions' + field. starting_token (int | Unset): Default: 0. limit (int | Unset): Default: 100. @@ -130,14 +135,15 @@ def sync_detailed( def sync( *, client: ApiClient, - actions: list[DatasetAction] | Unset = UNSET, + actions: list[DatasetAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> Optional[HTTPValidationError | ListDatasetResponse]: """List Datasets Args: - actions (list[DatasetAction] | Unset): Actions to include in the 'permissions' field. + actions (list[DatasetAction | str] | Unset): Actions to include in the 'permissions' + field. starting_token (int | Unset): Default: 0. limit (int | Unset): Default: 100. @@ -155,14 +161,15 @@ def sync( async def asyncio_detailed( *, client: ApiClient, - actions: list[DatasetAction] | Unset = UNSET, + actions: list[DatasetAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> Response[HTTPValidationError | ListDatasetResponse]: """List Datasets Args: - actions (list[DatasetAction] | Unset): Actions to include in the 'permissions' field. + actions (list[DatasetAction | str] | Unset): Actions to include in the 'permissions' + field. starting_token (int | Unset): Default: 0. limit (int | Unset): Default: 100. @@ -184,14 +191,15 @@ async def asyncio_detailed( async def asyncio( *, client: ApiClient, - actions: list[DatasetAction] | Unset = UNSET, + actions: list[DatasetAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> Optional[HTTPValidationError | ListDatasetResponse]: """List Datasets Args: - actions (list[DatasetAction] | Unset): Actions to include in the 'permissions' field. + actions (list[DatasetAction | str] | Unset): Actions to include in the 'permissions' + field. starting_token (int | Unset): Default: 0. limit (int | Unset): Default: 100. diff --git a/src/splunk_ao/resources/api/datasets/query_datasets_datasets_query_post.py b/src/splunk_ao/resources/api/datasets/query_datasets_datasets_query_post.py index d4bf1a3f..d6d074c6 100644 --- a/src/splunk_ao/resources/api/datasets/query_datasets_datasets_query_post.py +++ b/src/splunk_ao/resources/api/datasets/query_datasets_datasets_query_post.py @@ -27,7 +27,7 @@ def _get_kwargs( *, body: ListDatasetParams | Unset, - actions: list[DatasetAction] | Unset = UNSET, + actions: list[DatasetAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> dict[str, Any]: @@ -39,7 +39,11 @@ def _get_kwargs( if not isinstance(actions, Unset): json_actions = [] for actions_item_data in actions: - actions_item = actions_item_data.value + actions_item: str + if isinstance(actions_item_data, DatasetAction): + actions_item = actions_item_data.value + else: + actions_item = actions_item_data json_actions.append(actions_item) params["actions"] = json_actions @@ -113,14 +117,15 @@ def sync_detailed( *, client: ApiClient, body: ListDatasetParams | Unset, - actions: list[DatasetAction] | Unset = UNSET, + actions: list[DatasetAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> Response[HTTPValidationError | ListDatasetResponse]: """Query Datasets Args: - actions (list[DatasetAction] | Unset): Actions to include in the 'permissions' field. + actions (list[DatasetAction | str] | Unset): Actions to include in the 'permissions' + field. starting_token (int | Unset): Default: 0. limit (int | Unset): Default: 100. body (ListDatasetParams | Unset): @@ -144,14 +149,15 @@ def sync( *, client: ApiClient, body: ListDatasetParams | Unset, - actions: list[DatasetAction] | Unset = UNSET, + actions: list[DatasetAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> Optional[HTTPValidationError | ListDatasetResponse]: """Query Datasets Args: - actions (list[DatasetAction] | Unset): Actions to include in the 'permissions' field. + actions (list[DatasetAction | str] | Unset): Actions to include in the 'permissions' + field. starting_token (int | Unset): Default: 0. limit (int | Unset): Default: 100. body (ListDatasetParams | Unset): @@ -171,14 +177,15 @@ async def asyncio_detailed( *, client: ApiClient, body: ListDatasetParams | Unset, - actions: list[DatasetAction] | Unset = UNSET, + actions: list[DatasetAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> Response[HTTPValidationError | ListDatasetResponse]: """Query Datasets Args: - actions (list[DatasetAction] | Unset): Actions to include in the 'permissions' field. + actions (list[DatasetAction | str] | Unset): Actions to include in the 'permissions' + field. starting_token (int | Unset): Default: 0. limit (int | Unset): Default: 100. body (ListDatasetParams | Unset): @@ -202,14 +209,15 @@ async def asyncio( *, client: ApiClient, body: ListDatasetParams | Unset, - actions: list[DatasetAction] | Unset = UNSET, + actions: list[DatasetAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> Optional[HTTPValidationError | ListDatasetResponse]: """Query Datasets Args: - actions (list[DatasetAction] | Unset): Actions to include in the 'permissions' field. + actions (list[DatasetAction | str] | Unset): Actions to include in the 'permissions' + field. starting_token (int | Unset): Default: 0. limit (int | Unset): Default: 100. body (ListDatasetParams | Unset): diff --git a/src/splunk_ao/resources/api/integrations/delete_integration_integrations_name_delete.py b/src/splunk_ao/resources/api/integrations/delete_integration_integrations_name_delete.py index 3dd33a00..6ff21cc2 100644 --- a/src/splunk_ao/resources/api/integrations/delete_integration_integrations_name_delete.py +++ b/src/splunk_ao/resources/api/integrations/delete_integration_integrations_name_delete.py @@ -22,7 +22,7 @@ from ...types import Response -def _get_kwargs(name: IntegrationProvider) -> dict[str, Any]: +def _get_kwargs(name: IntegrationProvider | str) -> dict[str, Any]: headers: dict[str, Any] = {} _kwargs: dict[str, Any] = { @@ -74,13 +74,13 @@ def _build_response(*, client: ApiClient, response: httpx.Response) -> Response[ ) -def sync_detailed(name: IntegrationProvider, *, client: ApiClient) -> Response[Any | HTTPValidationError]: +def sync_detailed(name: IntegrationProvider | str, *, client: ApiClient) -> Response[Any | HTTPValidationError]: """Delete Integration Delete an integration. Admins can delete integrations created by other admins in the same org. Args: - name (IntegrationProvider): + name (IntegrationProvider | str): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -97,13 +97,13 @@ def sync_detailed(name: IntegrationProvider, *, client: ApiClient) -> Response[A return _build_response(client=client, response=response) -def sync(name: IntegrationProvider, *, client: ApiClient) -> Optional[Any | HTTPValidationError]: +def sync(name: IntegrationProvider | str, *, client: ApiClient) -> Optional[Any | HTTPValidationError]: """Delete Integration Delete an integration. Admins can delete integrations created by other admins in the same org. Args: - name (IntegrationProvider): + name (IntegrationProvider | str): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -116,13 +116,15 @@ def sync(name: IntegrationProvider, *, client: ApiClient) -> Optional[Any | HTTP return sync_detailed(name=name, client=client).parsed -async def asyncio_detailed(name: IntegrationProvider, *, client: ApiClient) -> Response[Any | HTTPValidationError]: +async def asyncio_detailed( + name: IntegrationProvider | str, *, client: ApiClient +) -> Response[Any | HTTPValidationError]: """Delete Integration Delete an integration. Admins can delete integrations created by other admins in the same org. Args: - name (IntegrationProvider): + name (IntegrationProvider | str): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -139,13 +141,13 @@ async def asyncio_detailed(name: IntegrationProvider, *, client: ApiClient) -> R return _build_response(client=client, response=response) -async def asyncio(name: IntegrationProvider, *, client: ApiClient) -> Optional[Any | HTTPValidationError]: +async def asyncio(name: IntegrationProvider | str, *, client: ApiClient) -> Optional[Any | HTTPValidationError]: """Delete Integration Delete an integration. Admins can delete integrations created by other admins in the same org. Args: - name (IntegrationProvider): + name (IntegrationProvider | str): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. diff --git a/src/splunk_ao/resources/api/integrations/get_billing_usage_billing_usage_metric_get.py b/src/splunk_ao/resources/api/integrations/get_billing_usage_billing_usage_metric_get.py index c73fd0d4..fcc4a7e0 100644 --- a/src/splunk_ao/resources/api/integrations/get_billing_usage_billing_usage_metric_get.py +++ b/src/splunk_ao/resources/api/integrations/get_billing_usage_billing_usage_metric_get.py @@ -27,11 +27,11 @@ def _get_kwargs( - metric: BillingUsageMetric, + metric: BillingUsageMetric | str, *, start_time: datetime.datetime, end_time: datetime.datetime, - interval: CostInterval, + interval: CostInterval | str, project_id: None | Unset | UUID = UNSET, ) -> dict[str, Any]: headers: dict[str, Any] = {} @@ -44,7 +44,11 @@ def _get_kwargs( json_end_time = end_time.isoformat() params["end_time"] = json_end_time - json_interval = interval.value + json_interval: str + if isinstance(interval, CostInterval): + json_interval = interval.value + else: + json_interval = interval params["interval"] = json_interval json_project_id: None | str | Unset @@ -112,21 +116,21 @@ def _build_response( def sync_detailed( - metric: BillingUsageMetric, + metric: BillingUsageMetric | str, *, client: ApiClient, start_time: datetime.datetime, end_time: datetime.datetime, - interval: CostInterval, + interval: CostInterval | str, project_id: None | Unset | UUID = UNSET, ) -> Response[BillingUsageResponse | HTTPValidationError]: """Get Billing Usage Args: - metric (BillingUsageMetric): + metric (BillingUsageMetric | str): start_time (datetime.datetime): Start of time range (UTC) end_time (datetime.datetime): End of time range (UTC) - interval (CostInterval): + interval (CostInterval | str): Aggregation interval project_id (None | Unset | UUID): Optional project filter Raises: @@ -147,21 +151,21 @@ def sync_detailed( def sync( - metric: BillingUsageMetric, + metric: BillingUsageMetric | str, *, client: ApiClient, start_time: datetime.datetime, end_time: datetime.datetime, - interval: CostInterval, + interval: CostInterval | str, project_id: None | Unset | UUID = UNSET, ) -> Optional[BillingUsageResponse | HTTPValidationError]: """Get Billing Usage Args: - metric (BillingUsageMetric): + metric (BillingUsageMetric | str): start_time (datetime.datetime): Start of time range (UTC) end_time (datetime.datetime): End of time range (UTC) - interval (CostInterval): + interval (CostInterval | str): Aggregation interval project_id (None | Unset | UUID): Optional project filter Raises: @@ -178,21 +182,21 @@ def sync( async def asyncio_detailed( - metric: BillingUsageMetric, + metric: BillingUsageMetric | str, *, client: ApiClient, start_time: datetime.datetime, end_time: datetime.datetime, - interval: CostInterval, + interval: CostInterval | str, project_id: None | Unset | UUID = UNSET, ) -> Response[BillingUsageResponse | HTTPValidationError]: """Get Billing Usage Args: - metric (BillingUsageMetric): + metric (BillingUsageMetric | str): start_time (datetime.datetime): Start of time range (UTC) end_time (datetime.datetime): End of time range (UTC) - interval (CostInterval): + interval (CostInterval | str): Aggregation interval project_id (None | Unset | UUID): Optional project filter Raises: @@ -213,21 +217,21 @@ async def asyncio_detailed( async def asyncio( - metric: BillingUsageMetric, + metric: BillingUsageMetric | str, *, client: ApiClient, start_time: datetime.datetime, end_time: datetime.datetime, - interval: CostInterval, + interval: CostInterval | str, project_id: None | Unset | UUID = UNSET, ) -> Optional[BillingUsageResponse | HTTPValidationError]: """Get Billing Usage Args: - metric (BillingUsageMetric): + metric (BillingUsageMetric | str): start_time (datetime.datetime): Start of time range (UTC) end_time (datetime.datetime): End of time range (UTC) - interval (CostInterval): + interval (CostInterval | str): Aggregation interval project_id (None | Unset | UUID): Optional project filter Raises: diff --git a/src/splunk_ao/resources/api/integrations/get_integration_costs_integrations_costs_summary_get.py b/src/splunk_ao/resources/api/integrations/get_integration_costs_integrations_costs_summary_get.py index 5910f322..4a9a056d 100644 --- a/src/splunk_ao/resources/api/integrations/get_integration_costs_integrations_costs_summary_get.py +++ b/src/splunk_ao/resources/api/integrations/get_integration_costs_integrations_costs_summary_get.py @@ -25,7 +25,7 @@ def _get_kwargs( - *, start_time: datetime.datetime, end_time: datetime.datetime, interval: CostInterval + *, start_time: datetime.datetime, end_time: datetime.datetime, interval: CostInterval | str ) -> dict[str, Any]: headers: dict[str, Any] = {} @@ -37,7 +37,11 @@ def _get_kwargs( json_end_time = end_time.isoformat() params["end_time"] = json_end_time - json_interval = interval.value + json_interval: str + if isinstance(interval, CostInterval): + json_interval = interval.value + else: + json_interval = interval params["interval"] = json_interval params = {k: v for k, v in params.items() if v is not UNSET and v is not None} @@ -96,14 +100,14 @@ def _build_response( def sync_detailed( - *, client: ApiClient, start_time: datetime.datetime, end_time: datetime.datetime, interval: CostInterval + *, client: ApiClient, start_time: datetime.datetime, end_time: datetime.datetime, interval: CostInterval | str ) -> Response[HTTPValidationError | IntegrationCostsResponse]: """Get Integration Costs Args: start_time (datetime.datetime): Start of time range (UTC) end_time (datetime.datetime): End of time range (UTC) - interval (CostInterval): + interval (CostInterval | str): Aggregation interval Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -121,14 +125,14 @@ def sync_detailed( def sync( - *, client: ApiClient, start_time: datetime.datetime, end_time: datetime.datetime, interval: CostInterval + *, client: ApiClient, start_time: datetime.datetime, end_time: datetime.datetime, interval: CostInterval | str ) -> Optional[HTTPValidationError | IntegrationCostsResponse]: """Get Integration Costs Args: start_time (datetime.datetime): Start of time range (UTC) end_time (datetime.datetime): End of time range (UTC) - interval (CostInterval): + interval (CostInterval | str): Aggregation interval Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -142,14 +146,14 @@ def sync( async def asyncio_detailed( - *, client: ApiClient, start_time: datetime.datetime, end_time: datetime.datetime, interval: CostInterval + *, client: ApiClient, start_time: datetime.datetime, end_time: datetime.datetime, interval: CostInterval | str ) -> Response[HTTPValidationError | IntegrationCostsResponse]: """Get Integration Costs Args: start_time (datetime.datetime): Start of time range (UTC) end_time (datetime.datetime): End of time range (UTC) - interval (CostInterval): + interval (CostInterval | str): Aggregation interval Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -167,14 +171,14 @@ async def asyncio_detailed( async def asyncio( - *, client: ApiClient, start_time: datetime.datetime, end_time: datetime.datetime, interval: CostInterval + *, client: ApiClient, start_time: datetime.datetime, end_time: datetime.datetime, interval: CostInterval | str ) -> Optional[HTTPValidationError | IntegrationCostsResponse]: """Get Integration Costs Args: start_time (datetime.datetime): Start of time range (UTC) end_time (datetime.datetime): End of time range (UTC) - interval (CostInterval): + interval (CostInterval | str): Aggregation interval Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. diff --git a/src/splunk_ao/resources/api/integrations/get_integration_integrations_name_get.py b/src/splunk_ao/resources/api/integrations/get_integration_integrations_name_get.py index 6f3d469f..eba6ac33 100644 --- a/src/splunk_ao/resources/api/integrations/get_integration_integrations_name_get.py +++ b/src/splunk_ao/resources/api/integrations/get_integration_integrations_name_get.py @@ -22,7 +22,7 @@ from ...types import Response -def _get_kwargs(name: IntegrationProvider) -> dict[str, Any]: +def _get_kwargs(name: IntegrationProvider | str) -> dict[str, Any]: headers: dict[str, Any] = {} _kwargs: dict[str, Any] = { @@ -70,13 +70,13 @@ def _build_response(*, client: ApiClient, response: httpx.Response) -> Response[ ) -def sync_detailed(name: IntegrationProvider, *, client: ApiClient) -> Response[HTTPValidationError]: +def sync_detailed(name: IntegrationProvider | str, *, client: ApiClient) -> Response[HTTPValidationError]: """Get Integration Gets the integration data formatted for the specified integration. Args: - name (IntegrationProvider): + name (IntegrationProvider | str): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -93,13 +93,13 @@ def sync_detailed(name: IntegrationProvider, *, client: ApiClient) -> Response[H return _build_response(client=client, response=response) -def sync(name: IntegrationProvider, *, client: ApiClient) -> Optional[HTTPValidationError]: +def sync(name: IntegrationProvider | str, *, client: ApiClient) -> Optional[HTTPValidationError]: """Get Integration Gets the integration data formatted for the specified integration. Args: - name (IntegrationProvider): + name (IntegrationProvider | str): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -112,13 +112,13 @@ def sync(name: IntegrationProvider, *, client: ApiClient) -> Optional[HTTPValida return sync_detailed(name=name, client=client).parsed -async def asyncio_detailed(name: IntegrationProvider, *, client: ApiClient) -> Response[HTTPValidationError]: +async def asyncio_detailed(name: IntegrationProvider | str, *, client: ApiClient) -> Response[HTTPValidationError]: """Get Integration Gets the integration data formatted for the specified integration. Args: - name (IntegrationProvider): + name (IntegrationProvider | str): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -135,13 +135,13 @@ async def asyncio_detailed(name: IntegrationProvider, *, client: ApiClient) -> R return _build_response(client=client, response=response) -async def asyncio(name: IntegrationProvider, *, client: ApiClient) -> Optional[HTTPValidationError]: +async def asyncio(name: IntegrationProvider | str, *, client: ApiClient) -> Optional[HTTPValidationError]: """Get Integration Gets the integration data formatted for the specified integration. Args: - name (IntegrationProvider): + name (IntegrationProvider | str): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. diff --git a/src/splunk_ao/resources/api/integrations/get_integration_status_integrations_name_status_get.py b/src/splunk_ao/resources/api/integrations/get_integration_status_integrations_name_status_get.py index b1c889b7..410177af 100644 --- a/src/splunk_ao/resources/api/integrations/get_integration_status_integrations_name_status_get.py +++ b/src/splunk_ao/resources/api/integrations/get_integration_status_integrations_name_status_get.py @@ -25,7 +25,7 @@ from ...types import Response -def _get_kwargs(name: IntegrationProvider) -> dict[str, Any]: +def _get_kwargs(name: IntegrationProvider | str) -> dict[str, Any]: headers: dict[str, Any] = {} _kwargs: dict[str, Any] = { @@ -91,7 +91,7 @@ def _build_response( def sync_detailed( - name: IntegrationProvider, *, client: ApiClient + name: IntegrationProvider | str, *, client: ApiClient ) -> Response[ GetIntegrationStatusIntegrationsNameStatusGetResponseGetIntegrationStatusIntegrationsNameStatusGet | HTTPValidationError @@ -101,7 +101,7 @@ def sync_detailed( Checks if the integration status is active or not. Args: - name (IntegrationProvider): + name (IntegrationProvider | str): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -119,7 +119,7 @@ def sync_detailed( def sync( - name: IntegrationProvider, *, client: ApiClient + name: IntegrationProvider | str, *, client: ApiClient ) -> Optional[ GetIntegrationStatusIntegrationsNameStatusGetResponseGetIntegrationStatusIntegrationsNameStatusGet | HTTPValidationError @@ -129,7 +129,7 @@ def sync( Checks if the integration status is active or not. Args: - name (IntegrationProvider): + name (IntegrationProvider | str): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -143,7 +143,7 @@ def sync( async def asyncio_detailed( - name: IntegrationProvider, *, client: ApiClient + name: IntegrationProvider | str, *, client: ApiClient ) -> Response[ GetIntegrationStatusIntegrationsNameStatusGetResponseGetIntegrationStatusIntegrationsNameStatusGet | HTTPValidationError @@ -153,7 +153,7 @@ async def asyncio_detailed( Checks if the integration status is active or not. Args: - name (IntegrationProvider): + name (IntegrationProvider | str): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -171,7 +171,7 @@ async def asyncio_detailed( async def asyncio( - name: IntegrationProvider, *, client: ApiClient + name: IntegrationProvider | str, *, client: ApiClient ) -> Optional[ GetIntegrationStatusIntegrationsNameStatusGetResponseGetIntegrationStatusIntegrationsNameStatusGet | HTTPValidationError @@ -181,7 +181,7 @@ async def asyncio( Checks if the integration status is active or not. Args: - name (IntegrationProvider): + name (IntegrationProvider | str): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. diff --git a/src/splunk_ao/resources/api/llm_integrations/get_available_models_llm_integrations_llm_integration_models_get.py b/src/splunk_ao/resources/api/llm_integrations/get_available_models_llm_integrations_llm_integration_models_get.py index cd95181f..57b07c9b 100644 --- a/src/splunk_ao/resources/api/llm_integrations/get_available_models_llm_integrations_llm_integration_models_get.py +++ b/src/splunk_ao/resources/api/llm_integrations/get_available_models_llm_integrations_llm_integration_models_get.py @@ -22,7 +22,7 @@ from ...types import Response -def _get_kwargs(llm_integration: LLMIntegration) -> dict[str, Any]: +def _get_kwargs(llm_integration: LLMIntegration | str) -> dict[str, Any]: headers: dict[str, Any] = {} _kwargs: dict[str, Any] = { @@ -75,13 +75,15 @@ def _build_response(*, client: ApiClient, response: httpx.Response) -> Response[ ) -def sync_detailed(llm_integration: LLMIntegration, *, client: ApiClient) -> Response[HTTPValidationError | list[str]]: +def sync_detailed( + llm_integration: LLMIntegration | str, *, client: ApiClient +) -> Response[HTTPValidationError | list[str]]: """Get Available Models Get the list of supported models for the LLM integration. Args: - llm_integration (LLMIntegration): + llm_integration (LLMIntegration | str): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -98,13 +100,13 @@ def sync_detailed(llm_integration: LLMIntegration, *, client: ApiClient) -> Resp return _build_response(client=client, response=response) -def sync(llm_integration: LLMIntegration, *, client: ApiClient) -> Optional[HTTPValidationError | list[str]]: +def sync(llm_integration: LLMIntegration | str, *, client: ApiClient) -> Optional[HTTPValidationError | list[str]]: """Get Available Models Get the list of supported models for the LLM integration. Args: - llm_integration (LLMIntegration): + llm_integration (LLMIntegration | str): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -118,14 +120,14 @@ def sync(llm_integration: LLMIntegration, *, client: ApiClient) -> Optional[HTTP async def asyncio_detailed( - llm_integration: LLMIntegration, *, client: ApiClient + llm_integration: LLMIntegration | str, *, client: ApiClient ) -> Response[HTTPValidationError | list[str]]: """Get Available Models Get the list of supported models for the LLM integration. Args: - llm_integration (LLMIntegration): + llm_integration (LLMIntegration | str): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -142,13 +144,15 @@ async def asyncio_detailed( return _build_response(client=client, response=response) -async def asyncio(llm_integration: LLMIntegration, *, client: ApiClient) -> Optional[HTTPValidationError | list[str]]: +async def asyncio( + llm_integration: LLMIntegration | str, *, client: ApiClient +) -> Optional[HTTPValidationError | list[str]]: """Get Available Models Get the list of supported models for the LLM integration. Args: - llm_integration (LLMIntegration): + llm_integration (LLMIntegration | str): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. diff --git a/src/splunk_ao/resources/api/llm_integrations/get_available_scorer_models_llm_integrations_llm_integration_scorer_models_get.py b/src/splunk_ao/resources/api/llm_integrations/get_available_scorer_models_llm_integrations_llm_integration_scorer_models_get.py index a740f98f..fe3c0f0c 100644 --- a/src/splunk_ao/resources/api/llm_integrations/get_available_scorer_models_llm_integrations_llm_integration_scorer_models_get.py +++ b/src/splunk_ao/resources/api/llm_integrations/get_available_scorer_models_llm_integrations_llm_integration_scorer_models_get.py @@ -22,7 +22,7 @@ from ...types import Response -def _get_kwargs(llm_integration: LLMIntegration) -> dict[str, Any]: +def _get_kwargs(llm_integration: LLMIntegration | str) -> dict[str, Any]: headers: dict[str, Any] = {} _kwargs: dict[str, Any] = { @@ -75,13 +75,15 @@ def _build_response(*, client: ApiClient, response: httpx.Response) -> Response[ ) -def sync_detailed(llm_integration: LLMIntegration, *, client: ApiClient) -> Response[HTTPValidationError | list[str]]: +def sync_detailed( + llm_integration: LLMIntegration | str, *, client: ApiClient +) -> Response[HTTPValidationError | list[str]]: """Get Available Scorer Models Get the list of supported scorer models for the LLM integration. Args: - llm_integration (LLMIntegration): + llm_integration (LLMIntegration | str): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -98,13 +100,13 @@ def sync_detailed(llm_integration: LLMIntegration, *, client: ApiClient) -> Resp return _build_response(client=client, response=response) -def sync(llm_integration: LLMIntegration, *, client: ApiClient) -> Optional[HTTPValidationError | list[str]]: +def sync(llm_integration: LLMIntegration | str, *, client: ApiClient) -> Optional[HTTPValidationError | list[str]]: """Get Available Scorer Models Get the list of supported scorer models for the LLM integration. Args: - llm_integration (LLMIntegration): + llm_integration (LLMIntegration | str): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -118,14 +120,14 @@ def sync(llm_integration: LLMIntegration, *, client: ApiClient) -> Optional[HTTP async def asyncio_detailed( - llm_integration: LLMIntegration, *, client: ApiClient + llm_integration: LLMIntegration | str, *, client: ApiClient ) -> Response[HTTPValidationError | list[str]]: """Get Available Scorer Models Get the list of supported scorer models for the LLM integration. Args: - llm_integration (LLMIntegration): + llm_integration (LLMIntegration | str): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -142,13 +144,15 @@ async def asyncio_detailed( return _build_response(client=client, response=response) -async def asyncio(llm_integration: LLMIntegration, *, client: ApiClient) -> Optional[HTTPValidationError | list[str]]: +async def asyncio( + llm_integration: LLMIntegration | str, *, client: ApiClient +) -> Optional[HTTPValidationError | list[str]]: """Get Available Scorer Models Get the list of supported scorer models for the LLM integration. Args: - llm_integration (LLMIntegration): + llm_integration (LLMIntegration | str): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. diff --git a/src/splunk_ao/resources/api/llm_integrations/get_integrations_and_model_info_for_run_llm_integrations_projects_project_id_runs_run_id_get.py b/src/splunk_ao/resources/api/llm_integrations/get_integrations_and_model_info_for_run_llm_integrations_projects_project_id_runs_run_id_get.py index 92baa331..c6af6ab8 100644 --- a/src/splunk_ao/resources/api/llm_integrations/get_integrations_and_model_info_for_run_llm_integrations_projects_project_id_runs_run_id_get.py +++ b/src/splunk_ao/resources/api/llm_integrations/get_integrations_and_model_info_for_run_llm_integrations_projects_project_id_runs_run_id_get.py @@ -26,7 +26,7 @@ def _get_kwargs( - project_id: str, run_id: str, *, multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + project_id: str, run_id: str, *, multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET ) -> dict[str, Any]: headers: dict[str, Any] = {} @@ -38,7 +38,11 @@ def _get_kwargs( elif isinstance(multimodal_capabilities, list): json_multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data json_multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -115,7 +119,7 @@ def sync_detailed( run_id: str, *, client: ApiClient, - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET, + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET, ) -> Response[ GetIntegrationsAndModelInfoForRunLlmIntegrationsProjectsProjectIdRunsRunIdGetGetRunIntegrationsResponse | HTTPValidationError @@ -127,7 +131,7 @@ def sync_detailed( Args: project_id (str): run_id (str): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -149,7 +153,7 @@ def sync( run_id: str, *, client: ApiClient, - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET, + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET, ) -> Optional[ GetIntegrationsAndModelInfoForRunLlmIntegrationsProjectsProjectIdRunsRunIdGetGetRunIntegrationsResponse | HTTPValidationError @@ -161,7 +165,7 @@ def sync( Args: project_id (str): run_id (str): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -181,7 +185,7 @@ async def asyncio_detailed( run_id: str, *, client: ApiClient, - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET, + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET, ) -> Response[ GetIntegrationsAndModelInfoForRunLlmIntegrationsProjectsProjectIdRunsRunIdGetGetRunIntegrationsResponse | HTTPValidationError @@ -193,7 +197,7 @@ async def asyncio_detailed( Args: project_id (str): run_id (str): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -215,7 +219,7 @@ async def asyncio( run_id: str, *, client: ApiClient, - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET, + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET, ) -> Optional[ GetIntegrationsAndModelInfoForRunLlmIntegrationsProjectsProjectIdRunsRunIdGetGetRunIntegrationsResponse | HTTPValidationError @@ -227,7 +231,7 @@ async def asyncio( Args: project_id (str): run_id (str): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. diff --git a/src/splunk_ao/resources/api/llm_integrations/get_integrations_and_model_info_llm_integrations_get.py b/src/splunk_ao/resources/api/llm_integrations/get_integrations_and_model_info_llm_integrations_get.py index 1632c1f6..97d5a3d6 100644 --- a/src/splunk_ao/resources/api/llm_integrations/get_integrations_and_model_info_llm_integrations_get.py +++ b/src/splunk_ao/resources/api/llm_integrations/get_integrations_and_model_info_llm_integrations_get.py @@ -25,7 +25,7 @@ from ...types import UNSET, Response, Unset -def _get_kwargs(*, multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET) -> dict[str, Any]: +def _get_kwargs(*, multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET) -> dict[str, Any]: headers: dict[str, Any] = {} params: dict[str, Any] = {} @@ -36,7 +36,11 @@ def _get_kwargs(*, multimodal_capabilities: list[MultimodalCapability] | None | elif isinstance(multimodal_capabilities, list): json_multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data json_multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -109,7 +113,7 @@ def _build_response( def sync_detailed( - *, client: ApiClient, multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + *, client: ApiClient, multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET ) -> Response[ GetIntegrationsAndModelInfoLlmIntegrationsGetResponseGetIntegrationsAndModelInfoLlmIntegrationsGet | HTTPValidationError @@ -119,7 +123,7 @@ def sync_detailed( Get the list of supported scorer models for the user's llm integrations. Args: - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -137,7 +141,7 @@ def sync_detailed( def sync( - *, client: ApiClient, multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + *, client: ApiClient, multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET ) -> Optional[ GetIntegrationsAndModelInfoLlmIntegrationsGetResponseGetIntegrationsAndModelInfoLlmIntegrationsGet | HTTPValidationError @@ -147,7 +151,7 @@ def sync( Get the list of supported scorer models for the user's llm integrations. Args: - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -161,7 +165,7 @@ def sync( async def asyncio_detailed( - *, client: ApiClient, multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + *, client: ApiClient, multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET ) -> Response[ GetIntegrationsAndModelInfoLlmIntegrationsGetResponseGetIntegrationsAndModelInfoLlmIntegrationsGet | HTTPValidationError @@ -171,7 +175,7 @@ async def asyncio_detailed( Get the list of supported scorer models for the user's llm integrations. Args: - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -189,7 +193,7 @@ async def asyncio_detailed( async def asyncio( - *, client: ApiClient, multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + *, client: ApiClient, multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET ) -> Optional[ GetIntegrationsAndModelInfoLlmIntegrationsGetResponseGetIntegrationsAndModelInfoLlmIntegrationsGet | HTTPValidationError @@ -199,7 +203,7 @@ async def asyncio( Get the list of supported scorer models for the user's llm integrations. Args: - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. diff --git a/src/splunk_ao/resources/api/projects/get_all_projects_projects_all_get.py b/src/splunk_ao/resources/api/projects/get_all_projects_projects_all_get.py index 3e040f4b..4b52470a 100644 --- a/src/splunk_ao/resources/api/projects/get_all_projects_projects_all_get.py +++ b/src/splunk_ao/resources/api/projects/get_all_projects_projects_all_get.py @@ -23,7 +23,7 @@ from ...types import UNSET, Response, Unset -def _get_kwargs(*, type_: None | ProjectType | Unset = UNSET) -> dict[str, Any]: +def _get_kwargs(*, type_: None | ProjectType | str | Unset = UNSET) -> dict[str, Any]: headers: dict[str, Any] = {} params: dict[str, Any] = {} @@ -98,7 +98,7 @@ def _build_response( def sync_detailed( - *, client: ApiClient, type_: None | ProjectType | Unset = UNSET + *, client: ApiClient, type_: None | ProjectType | str | Unset = UNSET ) -> Response[HTTPValidationError | list[ProjectDBThin]]: """Get All Projects @@ -109,7 +109,7 @@ def sync_detailed( DEPRECATED in favor of `get_projects_paginated`. Args: - type_ (None | ProjectType | Unset): + type_ (None | ProjectType | str | Unset): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -127,7 +127,7 @@ def sync_detailed( def sync( - *, client: ApiClient, type_: None | ProjectType | Unset = UNSET + *, client: ApiClient, type_: None | ProjectType | str | Unset = UNSET ) -> Optional[HTTPValidationError | list[ProjectDBThin]]: """Get All Projects @@ -138,7 +138,7 @@ def sync( DEPRECATED in favor of `get_projects_paginated`. Args: - type_ (None | ProjectType | Unset): + type_ (None | ProjectType | str | Unset): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -152,7 +152,7 @@ def sync( async def asyncio_detailed( - *, client: ApiClient, type_: None | ProjectType | Unset = UNSET + *, client: ApiClient, type_: None | ProjectType | str | Unset = UNSET ) -> Response[HTTPValidationError | list[ProjectDBThin]]: """Get All Projects @@ -163,7 +163,7 @@ async def asyncio_detailed( DEPRECATED in favor of `get_projects_paginated`. Args: - type_ (None | ProjectType | Unset): + type_ (None | ProjectType | str | Unset): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -181,7 +181,7 @@ async def asyncio_detailed( async def asyncio( - *, client: ApiClient, type_: None | ProjectType | Unset = UNSET + *, client: ApiClient, type_: None | ProjectType | str | Unset = UNSET ) -> Optional[HTTPValidationError | list[ProjectDBThin]]: """Get All Projects @@ -192,7 +192,7 @@ async def asyncio( DEPRECATED in favor of `get_projects_paginated`. Args: - type_ (None | ProjectType | Unset): + type_ (None | ProjectType | str | Unset): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. diff --git a/src/splunk_ao/resources/api/projects/get_projects_paginated_projects_paginated_post.py b/src/splunk_ao/resources/api/projects/get_projects_paginated_projects_paginated_post.py index 1244ed5e..b1ddd820 100644 --- a/src/splunk_ao/resources/api/projects/get_projects_paginated_projects_paginated_post.py +++ b/src/splunk_ao/resources/api/projects/get_projects_paginated_projects_paginated_post.py @@ -27,7 +27,7 @@ def _get_kwargs( *, body: ProjectCollectionParams | Unset, - actions: list[ProjectAction] | Unset = UNSET, + actions: list[ProjectAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> dict[str, Any]: @@ -39,7 +39,11 @@ def _get_kwargs( if not isinstance(actions, Unset): json_actions = [] for actions_item_data in actions: - actions_item = actions_item_data.value + actions_item: str + if isinstance(actions_item_data, ProjectAction): + actions_item = actions_item_data.value + else: + actions_item = actions_item_data json_actions.append(actions_item) params["actions"] = json_actions @@ -115,7 +119,7 @@ def sync_detailed( *, client: ApiClient, body: ProjectCollectionParams | Unset, - actions: list[ProjectAction] | Unset = UNSET, + actions: list[ProjectAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> Response[GetProjectsPaginatedResponse | HTTPValidationError]: @@ -126,7 +130,8 @@ def sync_detailed( If provided, filters on project_name and project_type. Args: - actions (list[ProjectAction] | Unset): Actions to include in the 'permissions' field. + actions (list[ProjectAction | str] | Unset): Actions to include in the 'permissions' + field. starting_token (int | Unset): Default: 0. limit (int | Unset): Default: 100. body (ProjectCollectionParams | Unset): @@ -150,7 +155,7 @@ def sync( *, client: ApiClient, body: ProjectCollectionParams | Unset, - actions: list[ProjectAction] | Unset = UNSET, + actions: list[ProjectAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> Optional[GetProjectsPaginatedResponse | HTTPValidationError]: @@ -161,7 +166,8 @@ def sync( If provided, filters on project_name and project_type. Args: - actions (list[ProjectAction] | Unset): Actions to include in the 'permissions' field. + actions (list[ProjectAction | str] | Unset): Actions to include in the 'permissions' + field. starting_token (int | Unset): Default: 0. limit (int | Unset): Default: 100. body (ProjectCollectionParams | Unset): @@ -181,7 +187,7 @@ async def asyncio_detailed( *, client: ApiClient, body: ProjectCollectionParams | Unset, - actions: list[ProjectAction] | Unset = UNSET, + actions: list[ProjectAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> Response[GetProjectsPaginatedResponse | HTTPValidationError]: @@ -192,7 +198,8 @@ async def asyncio_detailed( If provided, filters on project_name and project_type. Args: - actions (list[ProjectAction] | Unset): Actions to include in the 'permissions' field. + actions (list[ProjectAction | str] | Unset): Actions to include in the 'permissions' + field. starting_token (int | Unset): Default: 0. limit (int | Unset): Default: 100. body (ProjectCollectionParams | Unset): @@ -216,7 +223,7 @@ async def asyncio( *, client: ApiClient, body: ProjectCollectionParams | Unset, - actions: list[ProjectAction] | Unset = UNSET, + actions: list[ProjectAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> Optional[GetProjectsPaginatedResponse | HTTPValidationError]: @@ -227,7 +234,8 @@ async def asyncio( If provided, filters on project_name and project_type. Args: - actions (list[ProjectAction] | Unset): Actions to include in the 'permissions' field. + actions (list[ProjectAction | str] | Unset): Actions to include in the 'permissions' + field. starting_token (int | Unset): Default: 0. limit (int | Unset): Default: 100. body (ProjectCollectionParams | Unset): diff --git a/src/splunk_ao/resources/api/projects/get_projects_projects_get.py b/src/splunk_ao/resources/api/projects/get_projects_projects_get.py index d99e8a9e..d27a35e5 100644 --- a/src/splunk_ao/resources/api/projects/get_projects_projects_get.py +++ b/src/splunk_ao/resources/api/projects/get_projects_projects_get.py @@ -24,7 +24,7 @@ def _get_kwargs( - *, project_name: None | str | Unset = UNSET, type_: None | ProjectType | Unset = UNSET + *, project_name: None | str | Unset = UNSET, type_: None | ProjectType | str | Unset = UNSET ) -> dict[str, Any]: headers: dict[str, Any] = {} @@ -105,7 +105,7 @@ def _build_response(*, client: ApiClient, response: httpx.Response) -> Response[ def sync_detailed( - *, client: ApiClient, project_name: None | str | Unset = UNSET, type_: None | ProjectType | Unset = UNSET + *, client: ApiClient, project_name: None | str | Unset = UNSET, type_: None | ProjectType | str | Unset = UNSET ) -> Response[HTTPValidationError | list[ProjectDB]]: """Get Projects @@ -117,7 +117,7 @@ def sync_detailed( Args: project_name (None | str | Unset): - type_ (None | ProjectType | Unset): + type_ (None | ProjectType | str | Unset): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -135,7 +135,7 @@ def sync_detailed( def sync( - *, client: ApiClient, project_name: None | str | Unset = UNSET, type_: None | ProjectType | Unset = UNSET + *, client: ApiClient, project_name: None | str | Unset = UNSET, type_: None | ProjectType | str | Unset = UNSET ) -> Optional[HTTPValidationError | list[ProjectDB]]: """Get Projects @@ -147,7 +147,7 @@ def sync( Args: project_name (None | str | Unset): - type_ (None | ProjectType | Unset): + type_ (None | ProjectType | str | Unset): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -161,7 +161,7 @@ def sync( async def asyncio_detailed( - *, client: ApiClient, project_name: None | str | Unset = UNSET, type_: None | ProjectType | Unset = UNSET + *, client: ApiClient, project_name: None | str | Unset = UNSET, type_: None | ProjectType | str | Unset = UNSET ) -> Response[HTTPValidationError | list[ProjectDB]]: """Get Projects @@ -173,7 +173,7 @@ async def asyncio_detailed( Args: project_name (None | str | Unset): - type_ (None | ProjectType | Unset): + type_ (None | ProjectType | str | Unset): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. @@ -191,7 +191,7 @@ async def asyncio_detailed( async def asyncio( - *, client: ApiClient, project_name: None | str | Unset = UNSET, type_: None | ProjectType | Unset = UNSET + *, client: ApiClient, project_name: None | str | Unset = UNSET, type_: None | ProjectType | str | Unset = UNSET ) -> Optional[HTTPValidationError | list[ProjectDB]]: """Get Projects @@ -203,7 +203,7 @@ async def asyncio( Args: project_name (None | str | Unset): - type_ (None | ProjectType | Unset): + type_ (None | ProjectType | str | Unset): Raises: errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. diff --git a/src/splunk_ao/resources/models/action_result.py b/src/splunk_ao/resources/models/action_result.py index 456285fa..9fe9bc9d 100644 --- a/src/splunk_ao/resources/models/action_result.py +++ b/src/splunk_ao/resources/models/action_result.py @@ -1,7 +1,7 @@ from __future__ import annotations from collections.abc import Mapping -from typing import Any, TypeVar +from typing import Any, TypeVar, cast from attrs import define as _attrs_define from attrs import field as _attrs_field @@ -15,16 +15,20 @@ class ActionResult: """ Attributes: - type_ (ActionType): + type_ (ActionType | str): Type of action that was taken. value (str): Value of the action that was taken. """ - type_: ActionType + type_: ActionType | str value: str additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - type_ = self.type_.value + type_: str + if isinstance(self.type_, ActionType): + type_ = self.type_.value + else: + type_ = self.type_ value = self.value @@ -37,7 +41,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - type_ = ActionType(d.pop("type")) + + def _parse_type_(data: object) -> ActionType | str: + try: + if not isinstance(data, str): + raise TypeError() + type_type_0 = ActionType(data) + + return type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(ActionType | str, data) + + type_ = _parse_type_(d.pop("type")) value = d.pop("value") diff --git a/src/splunk_ao/resources/models/agent_span.py b/src/splunk_ao/resources/models/agent_span.py index a210089a..610c2ade 100644 --- a/src/splunk_ao/resources/models/agent_span.py +++ b/src/splunk_ao/resources/models/agent_span.py @@ -58,7 +58,7 @@ class AgentSpan: step_number (int | None | Unset): Topological step number of the span. parent_id (None | str | Unset): Galileo ID of the parent of this span spans (list[AgentSpan | ControlSpan | LlmSpan | RetrieverSpan | ToolSpan | WorkflowSpan] | Unset): Child spans. - agent_type (AgentType | Unset): + agent_type (AgentType | str | Unset): Agent type. """ type_: Literal["agent"] | Unset = "agent" @@ -86,7 +86,7 @@ class AgentSpan: step_number: int | None | Unset = UNSET parent_id: None | str | Unset = UNSET spans: list[AgentSpan | ControlSpan | LlmSpan | RetrieverSpan | ToolSpan | WorkflowSpan] | Unset = UNSET - agent_type: AgentType | Unset = UNSET + agent_type: AgentType | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -296,9 +296,13 @@ def to_dict(self) -> dict[str, Any]: spans.append(spans_item) - agent_type: str | Unset = UNSET - if not isinstance(self.agent_type, Unset): + agent_type: str | Unset + if isinstance(self.agent_type, Unset): + agent_type = UNSET + elif isinstance(self.agent_type, AgentType): agent_type = self.agent_type.value + else: + agent_type = self.agent_type field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -789,12 +793,22 @@ def _parse_spans_item( spans.append(spans_item) - _agent_type = d.pop("agent_type", UNSET) - agent_type: AgentType | Unset - if isinstance(_agent_type, Unset): - agent_type = UNSET - else: - agent_type = AgentType(_agent_type) + def _parse_agent_type(data: object) -> AgentType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + agent_type_type_0 = AgentType(data) + + return agent_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for agent_type") + return cast(AgentType | str | Unset, data) + + agent_type = _parse_agent_type(d.pop("agent_type", UNSET)) agent_span = cls( type_=type_, diff --git a/src/splunk_ao/resources/models/agentic_session_success_scorer.py b/src/splunk_ao/resources/models/agentic_session_success_scorer.py index 27fd44a6..0d3123fa 100644 --- a/src/splunk_ao/resources/models/agentic_session_success_scorer.py +++ b/src/splunk_ao/resources/models/agentic_session_success_scorer.py @@ -25,14 +25,14 @@ class AgenticSessionSuccessScorer: name (Literal['agentic_session_success'] | Unset): Default: 'agentic_session_success'. filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): List of filters to apply to the scorer. - type_ (AgenticSessionSuccessScorerType | Unset): Default: AgenticSessionSuccessScorerType.PLUS. + type_ (AgenticSessionSuccessScorerType | str | Unset): Default: AgenticSessionSuccessScorerType.PLUS. model_name (None | str | Unset): Alias of the model to use for the scorer. num_judges (int | None | Unset): Number of judges for the scorer. """ name: Literal["agentic_session_success"] | Unset = "agentic_session_success" filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET - type_: AgenticSessionSuccessScorerType | Unset = AgenticSessionSuccessScorerType.PLUS + type_: AgenticSessionSuccessScorerType | str | Unset = AgenticSessionSuccessScorerType.PLUS model_name: None | str | Unset = UNSET num_judges: int | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -62,9 +62,13 @@ def to_dict(self) -> dict[str, Any]: else: filters = self.filters - type_: str | Unset = UNSET - if not isinstance(self.type_, Unset): + type_: str | Unset + if isinstance(self.type_, Unset): + type_ = UNSET + elif isinstance(self.type_, AgenticSessionSuccessScorerType): type_ = self.type_.value + else: + type_ = self.type_ model_name: None | str | Unset if isinstance(self.model_name, Unset): @@ -151,12 +155,22 @@ def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter filters = _parse_filters(d.pop("filters", UNSET)) - _type_ = d.pop("type", UNSET) - type_: AgenticSessionSuccessScorerType | Unset - if isinstance(_type_, Unset): - type_ = UNSET - else: - type_ = AgenticSessionSuccessScorerType(_type_) + def _parse_type_(data: object) -> AgenticSessionSuccessScorerType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + type_type_0 = AgenticSessionSuccessScorerType(data) + + return type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(AgenticSessionSuccessScorerType | str | Unset, data) + + type_ = _parse_type_(d.pop("type", UNSET)) def _parse_model_name(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/agentic_workflow_success_scorer.py b/src/splunk_ao/resources/models/agentic_workflow_success_scorer.py index 3b34e773..3815b616 100644 --- a/src/splunk_ao/resources/models/agentic_workflow_success_scorer.py +++ b/src/splunk_ao/resources/models/agentic_workflow_success_scorer.py @@ -25,14 +25,14 @@ class AgenticWorkflowSuccessScorer: name (Literal['agentic_workflow_success'] | Unset): Default: 'agentic_workflow_success'. filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): List of filters to apply to the scorer. - type_ (AgenticWorkflowSuccessScorerType | Unset): Default: AgenticWorkflowSuccessScorerType.PLUS. + type_ (AgenticWorkflowSuccessScorerType | str | Unset): Default: AgenticWorkflowSuccessScorerType.PLUS. model_name (None | str | Unset): Alias of the model to use for the scorer. num_judges (int | None | Unset): Number of judges for the scorer. """ name: Literal["agentic_workflow_success"] | Unset = "agentic_workflow_success" filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET - type_: AgenticWorkflowSuccessScorerType | Unset = AgenticWorkflowSuccessScorerType.PLUS + type_: AgenticWorkflowSuccessScorerType | str | Unset = AgenticWorkflowSuccessScorerType.PLUS model_name: None | str | Unset = UNSET num_judges: int | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -62,9 +62,13 @@ def to_dict(self) -> dict[str, Any]: else: filters = self.filters - type_: str | Unset = UNSET - if not isinstance(self.type_, Unset): + type_: str | Unset + if isinstance(self.type_, Unset): + type_ = UNSET + elif isinstance(self.type_, AgenticWorkflowSuccessScorerType): type_ = self.type_.value + else: + type_ = self.type_ model_name: None | str | Unset if isinstance(self.model_name, Unset): @@ -151,12 +155,22 @@ def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter filters = _parse_filters(d.pop("filters", UNSET)) - _type_ = d.pop("type", UNSET) - type_: AgenticWorkflowSuccessScorerType | Unset - if isinstance(_type_, Unset): - type_ = UNSET - else: - type_ = AgenticWorkflowSuccessScorerType(_type_) + def _parse_type_(data: object) -> AgenticWorkflowSuccessScorerType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + type_type_0 = AgenticWorkflowSuccessScorerType(data) + + return type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(AgenticWorkflowSuccessScorerType | str | Unset, data) + + type_ = _parse_type_(d.pop("type", UNSET)) def _parse_model_name(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/aggregated_trace_view_node.py b/src/splunk_ao/resources/models/aggregated_trace_view_node.py index f0f01cdf..c25a605d 100644 --- a/src/splunk_ao/resources/models/aggregated_trace_view_node.py +++ b/src/splunk_ao/resources/models/aggregated_trace_view_node.py @@ -23,7 +23,7 @@ class AggregatedTraceViewNode: Attributes: id (str): name (None | str): - type_ (StepType): + type_ (StepType | str): occurrences (int): has_children (bool): metrics (AggregatedTraceViewNodeMetrics): @@ -35,7 +35,7 @@ class AggregatedTraceViewNode: id: str name: None | str - type_: StepType + type_: StepType | str occurrences: int has_children: bool metrics: AggregatedTraceViewNodeMetrics @@ -51,7 +51,11 @@ def to_dict(self) -> dict[str, Any]: name: None | str name = self.name - type_ = self.type_.value + type_: str + if isinstance(self.type_, StepType): + type_ = self.type_.value + else: + type_ = self.type_ occurrences = self.occurrences @@ -112,7 +116,20 @@ def _parse_name(data: object) -> None | str: name = _parse_name(d.pop("name")) - type_ = StepType(d.pop("type")) + def _parse_type_(data: object) -> StepType | str: + try: + if not isinstance(data, str): + raise TypeError() + type_type_0 = StepType(data) + + return type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(StepType | str, data) + + type_ = _parse_type_(d.pop("type")) occurrences = d.pop("occurrences") diff --git a/src/splunk_ao/resources/models/annotation_queue_created_at_filter.py b/src/splunk_ao/resources/models/annotation_queue_created_at_filter.py index dd361ad8..dd18ac74 100644 --- a/src/splunk_ao/resources/models/annotation_queue_created_at_filter.py +++ b/src/splunk_ao/resources/models/annotation_queue_created_at_filter.py @@ -17,18 +17,22 @@ class AnnotationQueueCreatedAtFilter: """ Attributes: - operator (AnnotationQueueCreatedAtFilterOperator): + operator (AnnotationQueueCreatedAtFilterOperator | str): value (datetime.datetime): name (Literal['created_at'] | Unset): Default: 'created_at'. """ - operator: AnnotationQueueCreatedAtFilterOperator + operator: AnnotationQueueCreatedAtFilterOperator | str value: datetime.datetime name: Literal["created_at"] | Unset = "created_at" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, AnnotationQueueCreatedAtFilterOperator): + operator = self.operator.value + else: + operator = self.operator value = self.value.isoformat() @@ -45,7 +49,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = AnnotationQueueCreatedAtFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> AnnotationQueueCreatedAtFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = AnnotationQueueCreatedAtFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(AnnotationQueueCreatedAtFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) value = datetime.datetime.fromisoformat(d.pop("value")) diff --git a/src/splunk_ao/resources/models/annotation_queue_export_request.py b/src/splunk_ao/resources/models/annotation_queue_export_request.py index 6fd00bb7..d31d6211 100644 --- a/src/splunk_ao/resources/models/annotation_queue_export_request.py +++ b/src/splunk_ao/resources/models/annotation_queue_export_request.py @@ -25,7 +25,7 @@ class AnnotationQueueExportRequest: record_selector (AnnotationQueueRecordsByFilterTree | AnnotationQueueRecordsByRecordIDs): Selector to specify which queue records to export (either by record IDs or filter tree) column_ids (list[str] | None | Unset): Column IDs to include in the export. Applies only to CSV exports. - export_format (LLMExportFormat | Unset): + export_format (LLMExportFormat | str | Unset): Export format redact (bool | Unset): Redact sensitive data Default: True. file_name (None | str | Unset): Optional filename for the exported file export_computed_metrics_only (bool | Unset): When true, export only enabled scorer metrics with computed values @@ -36,7 +36,7 @@ class AnnotationQueueExportRequest: record_selector: AnnotationQueueRecordsByFilterTree | AnnotationQueueRecordsByRecordIDs column_ids: list[str] | None | Unset = UNSET - export_format: LLMExportFormat | Unset = UNSET + export_format: LLMExportFormat | str | Unset = UNSET redact: bool | Unset = True file_name: None | str | Unset = UNSET export_computed_metrics_only: bool | Unset = False @@ -60,9 +60,13 @@ def to_dict(self) -> dict[str, Any]: else: column_ids = self.column_ids - export_format: str | Unset = UNSET - if not isinstance(self.export_format, Unset): + export_format: str | Unset + if isinstance(self.export_format, Unset): + export_format = UNSET + elif isinstance(self.export_format, LLMExportFormat): export_format = self.export_format.value + else: + export_format = self.export_format redact = self.redact @@ -133,12 +137,22 @@ def _parse_column_ids(data: object) -> list[str] | None | Unset: column_ids = _parse_column_ids(d.pop("column_ids", UNSET)) - _export_format = d.pop("export_format", UNSET) - export_format: LLMExportFormat | Unset - if isinstance(_export_format, Unset): - export_format = UNSET - else: - export_format = LLMExportFormat(_export_format) + def _parse_export_format(data: object) -> LLMExportFormat | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + export_format_type_0 = LLMExportFormat(data) + + return export_format_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for export_format") + return cast(LLMExportFormat | str | Unset, data) + + export_format = _parse_export_format(d.pop("export_format", UNSET)) redact = d.pop("redact", UNSET) diff --git a/src/splunk_ao/resources/models/annotation_queue_id_filter.py b/src/splunk_ao/resources/models/annotation_queue_id_filter.py index e389e19c..0e550cd2 100644 --- a/src/splunk_ao/resources/models/annotation_queue_id_filter.py +++ b/src/splunk_ao/resources/models/annotation_queue_id_filter.py @@ -18,12 +18,12 @@ class AnnotationQueueIDFilter: Attributes: value (list[str] | str): name (Literal['id'] | Unset): Default: 'id'. - operator (AnnotationQueueIDFilterOperator | Unset): Default: AnnotationQueueIDFilterOperator.EQ. + operator (AnnotationQueueIDFilterOperator | str | Unset): Default: AnnotationQueueIDFilterOperator.EQ. """ value: list[str] | str name: Literal["id"] | Unset = "id" - operator: AnnotationQueueIDFilterOperator | Unset = AnnotationQueueIDFilterOperator.EQ + operator: AnnotationQueueIDFilterOperator | str | Unset = AnnotationQueueIDFilterOperator.EQ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -40,9 +40,13 @@ def to_dict(self) -> dict[str, Any]: name = self.name - operator: str | Unset = UNSET - if not isinstance(self.operator, Unset): + operator: str | Unset + if isinstance(self.operator, Unset): + operator = UNSET + elif isinstance(self.operator, AnnotationQueueIDFilterOperator): operator = self.operator.value + else: + operator = self.operator field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -84,12 +88,22 @@ def _parse_value_type_1_item(data: object) -> str: if name != "id" and not isinstance(name, Unset): raise ValueError(f"name must match const 'id', got '{name}'") - _operator = d.pop("operator", UNSET) - operator: AnnotationQueueIDFilterOperator | Unset - if isinstance(_operator, Unset): - operator = UNSET - else: - operator = AnnotationQueueIDFilterOperator(_operator) + def _parse_operator(data: object) -> AnnotationQueueIDFilterOperator | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = AnnotationQueueIDFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(AnnotationQueueIDFilterOperator | str | Unset, data) + + operator = _parse_operator(d.pop("operator", UNSET)) annotation_queue_id_filter = cls(value=value, name=name, operator=operator) diff --git a/src/splunk_ao/resources/models/annotation_queue_name_filter.py b/src/splunk_ao/resources/models/annotation_queue_name_filter.py index e0ea8e7b..34ae13d7 100644 --- a/src/splunk_ao/resources/models/annotation_queue_name_filter.py +++ b/src/splunk_ao/resources/models/annotation_queue_name_filter.py @@ -16,20 +16,24 @@ class AnnotationQueueNameFilter: """ Attributes: - operator (AnnotationQueueNameFilterOperator): + operator (AnnotationQueueNameFilterOperator | str): value (list[str] | str): name (Literal['name'] | Unset): Default: 'name'. case_sensitive (bool | Unset): Default: True. """ - operator: AnnotationQueueNameFilterOperator + operator: AnnotationQueueNameFilterOperator | str value: list[str] | str name: Literal["name"] | Unset = "name" case_sensitive: bool | Unset = True additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, AnnotationQueueNameFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: list[str] | str if isinstance(self.value, list): @@ -55,7 +59,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = AnnotationQueueNameFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> AnnotationQueueNameFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = AnnotationQueueNameFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(AnnotationQueueNameFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> list[str] | str: try: diff --git a/src/splunk_ao/resources/models/annotation_queue_num_annotators_filter.py b/src/splunk_ao/resources/models/annotation_queue_num_annotators_filter.py index 466f26fa..220bc903 100644 --- a/src/splunk_ao/resources/models/annotation_queue_num_annotators_filter.py +++ b/src/splunk_ao/resources/models/annotation_queue_num_annotators_filter.py @@ -16,18 +16,22 @@ class AnnotationQueueNumAnnotatorsFilter: """ Attributes: - operator (AnnotationQueueNumAnnotatorsFilterOperator): + operator (AnnotationQueueNumAnnotatorsFilterOperator | str): value (float | int | list[float] | list[int]): name (Literal['num_annotators'] | Unset): Default: 'num_annotators'. """ - operator: AnnotationQueueNumAnnotatorsFilterOperator + operator: AnnotationQueueNumAnnotatorsFilterOperator | str value: float | int | list[float] | list[int] name: Literal["num_annotators"] | Unset = "num_annotators" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, AnnotationQueueNumAnnotatorsFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: float | int | list[float] | list[int] if isinstance(self.value, list): @@ -52,7 +56,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = AnnotationQueueNumAnnotatorsFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> AnnotationQueueNumAnnotatorsFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = AnnotationQueueNumAnnotatorsFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(AnnotationQueueNumAnnotatorsFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> float | int | list[float] | list[int]: try: diff --git a/src/splunk_ao/resources/models/annotation_queue_num_log_records_filter.py b/src/splunk_ao/resources/models/annotation_queue_num_log_records_filter.py index 0c2bd73a..9c7cf14d 100644 --- a/src/splunk_ao/resources/models/annotation_queue_num_log_records_filter.py +++ b/src/splunk_ao/resources/models/annotation_queue_num_log_records_filter.py @@ -16,18 +16,22 @@ class AnnotationQueueNumLogRecordsFilter: """ Attributes: - operator (AnnotationQueueNumLogRecordsFilterOperator): + operator (AnnotationQueueNumLogRecordsFilterOperator | str): value (float | int | list[float] | list[int]): name (Literal['num_log_records'] | Unset): Default: 'num_log_records'. """ - operator: AnnotationQueueNumLogRecordsFilterOperator + operator: AnnotationQueueNumLogRecordsFilterOperator | str value: float | int | list[float] | list[int] name: Literal["num_log_records"] | Unset = "num_log_records" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, AnnotationQueueNumLogRecordsFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: float | int | list[float] | list[int] if isinstance(self.value, list): @@ -52,7 +56,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = AnnotationQueueNumLogRecordsFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> AnnotationQueueNumLogRecordsFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = AnnotationQueueNumLogRecordsFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(AnnotationQueueNumLogRecordsFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> float | int | list[float] | list[int]: try: diff --git a/src/splunk_ao/resources/models/annotation_queue_num_templates_filter.py b/src/splunk_ao/resources/models/annotation_queue_num_templates_filter.py index 98e2afeb..c2acd31c 100644 --- a/src/splunk_ao/resources/models/annotation_queue_num_templates_filter.py +++ b/src/splunk_ao/resources/models/annotation_queue_num_templates_filter.py @@ -16,18 +16,22 @@ class AnnotationQueueNumTemplatesFilter: """ Attributes: - operator (AnnotationQueueNumTemplatesFilterOperator): + operator (AnnotationQueueNumTemplatesFilterOperator | str): value (float | int | list[float] | list[int]): name (Literal['num_templates'] | Unset): Default: 'num_templates'. """ - operator: AnnotationQueueNumTemplatesFilterOperator + operator: AnnotationQueueNumTemplatesFilterOperator | str value: float | int | list[float] | list[int] name: Literal["num_templates"] | Unset = "num_templates" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, AnnotationQueueNumTemplatesFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: float | int | list[float] | list[int] if isinstance(self.value, list): @@ -52,7 +56,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = AnnotationQueueNumTemplatesFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> AnnotationQueueNumTemplatesFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = AnnotationQueueNumTemplatesFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(AnnotationQueueNumTemplatesFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> float | int | list[float] | list[int]: try: diff --git a/src/splunk_ao/resources/models/annotation_queue_num_users_filter.py b/src/splunk_ao/resources/models/annotation_queue_num_users_filter.py index 7fa06e4d..b536146f 100644 --- a/src/splunk_ao/resources/models/annotation_queue_num_users_filter.py +++ b/src/splunk_ao/resources/models/annotation_queue_num_users_filter.py @@ -16,18 +16,22 @@ class AnnotationQueueNumUsersFilter: """ Attributes: - operator (AnnotationQueueNumUsersFilterOperator): + operator (AnnotationQueueNumUsersFilterOperator | str): value (float | int | list[float] | list[int]): name (Literal['num_users'] | Unset): Default: 'num_users'. """ - operator: AnnotationQueueNumUsersFilterOperator + operator: AnnotationQueueNumUsersFilterOperator | str value: float | int | list[float] | list[int] name: Literal["num_users"] | Unset = "num_users" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, AnnotationQueueNumUsersFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: float | int | list[float] | list[int] if isinstance(self.value, list): @@ -52,7 +56,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = AnnotationQueueNumUsersFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> AnnotationQueueNumUsersFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = AnnotationQueueNumUsersFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(AnnotationQueueNumUsersFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> float | int | list[float] | list[int]: try: diff --git a/src/splunk_ao/resources/models/annotation_queue_overall_progress_filter.py b/src/splunk_ao/resources/models/annotation_queue_overall_progress_filter.py index 82ea4e2c..79843b1f 100644 --- a/src/splunk_ao/resources/models/annotation_queue_overall_progress_filter.py +++ b/src/splunk_ao/resources/models/annotation_queue_overall_progress_filter.py @@ -16,18 +16,22 @@ class AnnotationQueueOverallProgressFilter: """ Attributes: - operator (AnnotationQueueOverallProgressFilterOperator): + operator (AnnotationQueueOverallProgressFilterOperator | str): value (float | int | list[float] | list[int]): name (Literal['overall_progress'] | Unset): Default: 'overall_progress'. """ - operator: AnnotationQueueOverallProgressFilterOperator + operator: AnnotationQueueOverallProgressFilterOperator | str value: float | int | list[float] | list[int] name: Literal["overall_progress"] | Unset = "overall_progress" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, AnnotationQueueOverallProgressFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: float | int | list[float] | list[int] if isinstance(self.value, list): @@ -52,7 +56,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = AnnotationQueueOverallProgressFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> AnnotationQueueOverallProgressFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = AnnotationQueueOverallProgressFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(AnnotationQueueOverallProgressFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> float | int | list[float] | list[int]: try: diff --git a/src/splunk_ao/resources/models/annotation_queue_updated_at_filter.py b/src/splunk_ao/resources/models/annotation_queue_updated_at_filter.py index 69e03efd..8cc2733e 100644 --- a/src/splunk_ao/resources/models/annotation_queue_updated_at_filter.py +++ b/src/splunk_ao/resources/models/annotation_queue_updated_at_filter.py @@ -17,18 +17,22 @@ class AnnotationQueueUpdatedAtFilter: """ Attributes: - operator (AnnotationQueueUpdatedAtFilterOperator): + operator (AnnotationQueueUpdatedAtFilterOperator | str): value (datetime.datetime): name (Literal['updated_at'] | Unset): Default: 'updated_at'. """ - operator: AnnotationQueueUpdatedAtFilterOperator + operator: AnnotationQueueUpdatedAtFilterOperator | str value: datetime.datetime name: Literal["updated_at"] | Unset = "updated_at" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, AnnotationQueueUpdatedAtFilterOperator): + operator = self.operator.value + else: + operator = self.operator value = self.value.isoformat() @@ -45,7 +49,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = AnnotationQueueUpdatedAtFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> AnnotationQueueUpdatedAtFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = AnnotationQueueUpdatedAtFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(AnnotationQueueUpdatedAtFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) value = datetime.datetime.fromisoformat(d.pop("value")) diff --git a/src/splunk_ao/resources/models/annotation_queue_user_collaborator_create.py b/src/splunk_ao/resources/models/annotation_queue_user_collaborator_create.py index 09cbecc2..a2f8905e 100644 --- a/src/splunk_ao/resources/models/annotation_queue_user_collaborator_create.py +++ b/src/splunk_ao/resources/models/annotation_queue_user_collaborator_create.py @@ -16,22 +16,26 @@ class AnnotationQueueUserCollaboratorCreate: """ Attributes: - role (CollaboratorRole | Unset): + role (CollaboratorRole | str | Unset): user_id (None | str | Unset): user_email (None | str | Unset): track_progress (bool | Unset): Default: True. """ - role: CollaboratorRole | Unset = UNSET + role: CollaboratorRole | str | Unset = UNSET user_id: None | str | Unset = UNSET user_email: None | str | Unset = UNSET track_progress: bool | Unset = True additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - role: str | Unset = UNSET - if not isinstance(self.role, Unset): + role: str | Unset + if isinstance(self.role, Unset): + role = UNSET + elif isinstance(self.role, CollaboratorRole): role = self.role.value + else: + role = self.role user_id: None | str | Unset if isinstance(self.user_id, Unset): @@ -64,12 +68,23 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - _role = d.pop("role", UNSET) - role: CollaboratorRole | Unset - if isinstance(_role, Unset): - role = UNSET - else: - role = CollaboratorRole(_role) + + def _parse_role(data: object) -> CollaboratorRole | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + role_type_0 = CollaboratorRole(data) + + return role_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for role") + return cast(CollaboratorRole | str | Unset, data) + + role = _parse_role(d.pop("role", UNSET)) def _parse_user_id(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/annotation_queue_user_collaborator_update.py b/src/splunk_ao/resources/models/annotation_queue_user_collaborator_update.py index ccb1d6ce..82c2b7ef 100644 --- a/src/splunk_ao/resources/models/annotation_queue_user_collaborator_update.py +++ b/src/splunk_ao/resources/models/annotation_queue_user_collaborator_update.py @@ -16,16 +16,20 @@ class AnnotationQueueUserCollaboratorUpdate: """ Attributes: - role (CollaboratorRole): + role (CollaboratorRole | str): track_progress (bool | None | Unset): """ - role: CollaboratorRole + role: CollaboratorRole | str track_progress: bool | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - role = self.role.value + role: str + if isinstance(self.role, CollaboratorRole): + role = self.role.value + else: + role = self.role track_progress: bool | None | Unset if isinstance(self.track_progress, Unset): @@ -44,7 +48,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - role = CollaboratorRole(d.pop("role")) + + def _parse_role(data: object) -> CollaboratorRole | str: + try: + if not isinstance(data, str): + raise TypeError() + role_type_0 = CollaboratorRole(data) + + return role_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for role") + return cast(CollaboratorRole | str, data) + + role = _parse_role(d.pop("role")) def _parse_track_progress(data: object) -> bool | None | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/annotation_rating_info.py b/src/splunk_ao/resources/models/annotation_rating_info.py index 52764f26..66529ffc 100644 --- a/src/splunk_ao/resources/models/annotation_rating_info.py +++ b/src/splunk_ao/resources/models/annotation_rating_info.py @@ -15,18 +15,22 @@ class AnnotationRatingInfo: """ Attributes: - annotation_type (AnnotationType): + annotation_type (AnnotationType | str): value (bool | int | list[str] | str): explanation (None | str): """ - annotation_type: AnnotationType + annotation_type: AnnotationType | str value: bool | int | list[str] | str explanation: None | str additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - annotation_type = self.annotation_type.value + annotation_type: str + if isinstance(self.annotation_type, AnnotationType): + annotation_type = self.annotation_type.value + else: + annotation_type = self.annotation_type value: bool | int | list[str] | str if isinstance(self.value, list): @@ -47,7 +51,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - annotation_type = AnnotationType(d.pop("annotation_type")) + + def _parse_annotation_type(data: object) -> AnnotationType | str: + try: + if not isinstance(data, str): + raise TypeError() + annotation_type_type_0 = AnnotationType(data) + + return annotation_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_type") + return cast(AnnotationType | str, data) + + annotation_type = _parse_annotation_type(d.pop("annotation_type")) def _parse_value(data: object) -> bool | int | list[str] | str: try: diff --git a/src/splunk_ao/resources/models/anthropic_integration.py b/src/splunk_ao/resources/models/anthropic_integration.py index 9096bedb..543edc66 100644 --- a/src/splunk_ao/resources/models/anthropic_integration.py +++ b/src/splunk_ao/resources/models/anthropic_integration.py @@ -24,7 +24,7 @@ class AnthropicIntegration: Attributes: multi_modal_config (MultiModalModelIntegrationConfig | None | Unset): Configuration for multi-modal (file upload) capabilities. - authentication_type (AnthropicAuthenticationType | Unset): + authentication_type (AnthropicAuthenticationType | str | Unset): endpoint (None | str | Unset): Custom base URL for the Anthropic API. Required if `proxy` is True. authentication_scope (None | str | Unset): oauth2_token_url (None | str | Unset): OAuth2 token URL for custom OAuth2 authentication @@ -37,7 +37,7 @@ class AnthropicIntegration: """ multi_modal_config: MultiModalModelIntegrationConfig | None | Unset = UNSET - authentication_type: AnthropicAuthenticationType | Unset = UNSET + authentication_type: AnthropicAuthenticationType | str | Unset = UNSET endpoint: None | str | Unset = UNSET authentication_scope: None | str | Unset = UNSET oauth2_token_url: None | str | Unset = UNSET @@ -63,9 +63,13 @@ def to_dict(self) -> dict[str, Any]: else: multi_modal_config = self.multi_modal_config - authentication_type: str | Unset = UNSET - if not isinstance(self.authentication_type, Unset): + authentication_type: str | Unset + if isinstance(self.authentication_type, Unset): + authentication_type = UNSET + elif isinstance(self.authentication_type, AnthropicAuthenticationType): authentication_type = self.authentication_type.value + else: + authentication_type = self.authentication_type endpoint: None | str | Unset if isinstance(self.endpoint, Unset): @@ -164,12 +168,22 @@ def _parse_multi_modal_config(data: object) -> MultiModalModelIntegrationConfig multi_modal_config = _parse_multi_modal_config(d.pop("multi_modal_config", UNSET)) - _authentication_type = d.pop("authentication_type", UNSET) - authentication_type: AnthropicAuthenticationType | Unset - if isinstance(_authentication_type, Unset): - authentication_type = UNSET - else: - authentication_type = AnthropicAuthenticationType(_authentication_type) + def _parse_authentication_type(data: object) -> AnthropicAuthenticationType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + authentication_type_type_0 = AnthropicAuthenticationType(data) + + return authentication_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for authentication_type") + return cast(AnthropicAuthenticationType | str | Unset, data) + + authentication_type = _parse_authentication_type(d.pop("authentication_type", UNSET)) def _parse_endpoint(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/anthropic_integration_create.py b/src/splunk_ao/resources/models/anthropic_integration_create.py index 51c1f40e..fa7f922c 100644 --- a/src/splunk_ao/resources/models/anthropic_integration_create.py +++ b/src/splunk_ao/resources/models/anthropic_integration_create.py @@ -26,7 +26,7 @@ class AnthropicIntegrationCreate: token (str): multi_modal_config (MultiModalModelIntegrationConfig | None | Unset): Configuration for multi-modal (file upload) capabilities. - authentication_type (AnthropicAuthenticationType | Unset): + authentication_type (AnthropicAuthenticationType | str | Unset): endpoint (None | str | Unset): Custom base URL for the Anthropic API. Required if `proxy` is True. authentication_scope (None | str | Unset): oauth2_token_url (None | str | Unset): OAuth2 token URL for custom OAuth2 authentication @@ -36,7 +36,7 @@ class AnthropicIntegrationCreate: token: str multi_modal_config: MultiModalModelIntegrationConfig | None | Unset = UNSET - authentication_type: AnthropicAuthenticationType | Unset = UNSET + authentication_type: AnthropicAuthenticationType | str | Unset = UNSET endpoint: None | str | Unset = UNSET authentication_scope: None | str | Unset = UNSET oauth2_token_url: None | str | Unset = UNSET @@ -59,9 +59,13 @@ def to_dict(self) -> dict[str, Any]: else: multi_modal_config = self.multi_modal_config - authentication_type: str | Unset = UNSET - if not isinstance(self.authentication_type, Unset): + authentication_type: str | Unset + if isinstance(self.authentication_type, Unset): + authentication_type = UNSET + elif isinstance(self.authentication_type, AnthropicAuthenticationType): authentication_type = self.authentication_type.value + else: + authentication_type = self.authentication_type endpoint: None | str | Unset if isinstance(self.endpoint, Unset): @@ -134,12 +138,22 @@ def _parse_multi_modal_config(data: object) -> MultiModalModelIntegrationConfig multi_modal_config = _parse_multi_modal_config(d.pop("multi_modal_config", UNSET)) - _authentication_type = d.pop("authentication_type", UNSET) - authentication_type: AnthropicAuthenticationType | Unset - if isinstance(_authentication_type, Unset): - authentication_type = UNSET - else: - authentication_type = AnthropicAuthenticationType(_authentication_type) + def _parse_authentication_type(data: object) -> AnthropicAuthenticationType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + authentication_type_type_0 = AnthropicAuthenticationType(data) + + return authentication_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for authentication_type") + return cast(AnthropicAuthenticationType | str | Unset, data) + + authentication_type = _parse_authentication_type(d.pop("authentication_type", UNSET)) def _parse_endpoint(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/available_integrations.py b/src/splunk_ao/resources/models/available_integrations.py index 33f4e7ca..6386d136 100644 --- a/src/splunk_ao/resources/models/available_integrations.py +++ b/src/splunk_ao/resources/models/available_integrations.py @@ -1,7 +1,7 @@ from __future__ import annotations from collections.abc import Mapping -from typing import Any, TypeVar +from typing import Any, TypeVar, cast from attrs import define as _attrs_define from attrs import field as _attrs_field @@ -15,16 +15,20 @@ class AvailableIntegrations: """ Attributes: - integrations (list[IntegrationProvider]): + integrations (list[IntegrationProvider | str]): """ - integrations: list[IntegrationProvider] + integrations: list[IntegrationProvider | str] additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: integrations = [] for integrations_item_data in self.integrations: - integrations_item = integrations_item_data.value + integrations_item: str + if isinstance(integrations_item_data, IntegrationProvider): + integrations_item = integrations_item_data.value + else: + integrations_item = integrations_item_data integrations.append(integrations_item) field_dict: dict[str, Any] = {} @@ -39,7 +43,21 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: integrations = [] _integrations = d.pop("integrations") for integrations_item_data in _integrations: - integrations_item = IntegrationProvider(integrations_item_data) + + def _parse_integrations_item(data: object) -> IntegrationProvider | str: + try: + if not isinstance(data, str): + raise TypeError() + integrations_item_type_0 = IntegrationProvider(data) + + return integrations_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for integrations_item") + return cast(IntegrationProvider | str, data) + + integrations_item = _parse_integrations_item(integrations_item_data) integrations.append(integrations_item) diff --git a/src/splunk_ao/resources/models/aws_bedrock_integration.py b/src/splunk_ao/resources/models/aws_bedrock_integration.py index 329b9233..3046b075 100644 --- a/src/splunk_ao/resources/models/aws_bedrock_integration.py +++ b/src/splunk_ao/resources/models/aws_bedrock_integration.py @@ -24,7 +24,7 @@ class AwsBedrockIntegration: Attributes: multi_modal_config (MultiModalModelIntegrationConfig | None | Unset): Configuration for multi-modal (file upload) capabilities. - credential_type (AwsCredentialType | Unset): + credential_type (AwsCredentialType | str | Unset): region (str | Unset): Default: 'us-west-2'. inference_profiles (AwsBedrockIntegrationInferenceProfiles | Unset): Mapping from model name (Foundation model ID) to inference profile ARN or ID @@ -35,7 +35,7 @@ class AwsBedrockIntegration: """ multi_modal_config: MultiModalModelIntegrationConfig | None | Unset = UNSET - credential_type: AwsCredentialType | Unset = UNSET + credential_type: AwsCredentialType | str | Unset = UNSET region: str | Unset = "us-west-2" inference_profiles: AwsBedrockIntegrationInferenceProfiles | Unset = UNSET id: None | str | Unset = UNSET @@ -56,9 +56,13 @@ def to_dict(self) -> dict[str, Any]: else: multi_modal_config = self.multi_modal_config - credential_type: str | Unset = UNSET - if not isinstance(self.credential_type, Unset): + credential_type: str | Unset + if isinstance(self.credential_type, Unset): + credential_type = UNSET + elif isinstance(self.credential_type, AwsCredentialType): credential_type = self.credential_type.value + else: + credential_type = self.credential_type region = self.region @@ -131,12 +135,22 @@ def _parse_multi_modal_config(data: object) -> MultiModalModelIntegrationConfig multi_modal_config = _parse_multi_modal_config(d.pop("multi_modal_config", UNSET)) - _credential_type = d.pop("credential_type", UNSET) - credential_type: AwsCredentialType | Unset - if isinstance(_credential_type, Unset): - credential_type = UNSET - else: - credential_type = AwsCredentialType(_credential_type) + def _parse_credential_type(data: object) -> AwsCredentialType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + credential_type_type_0 = AwsCredentialType(data) + + return credential_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for credential_type") + return cast(AwsCredentialType | str | Unset, data) + + credential_type = _parse_credential_type(d.pop("credential_type", UNSET)) region = d.pop("region", UNSET) diff --git a/src/splunk_ao/resources/models/aws_sage_maker_integration.py b/src/splunk_ao/resources/models/aws_sage_maker_integration.py index a7fb6d07..a3e7c9be 100644 --- a/src/splunk_ao/resources/models/aws_sage_maker_integration.py +++ b/src/splunk_ao/resources/models/aws_sage_maker_integration.py @@ -22,7 +22,7 @@ class AwsSageMakerIntegration: """ Attributes: - credential_type (AwsCredentialType | Unset): + credential_type (AwsCredentialType | str | Unset): region (str | Unset): Default: 'us-west-2'. multi_modal_config (MultiModalModelIntegrationConfig | None | Unset): Configuration for multi-modal (file upload) capabilities. @@ -33,7 +33,7 @@ class AwsSageMakerIntegration: extra (AwsSageMakerIntegrationExtraType0 | None | Unset): """ - credential_type: AwsCredentialType | Unset = UNSET + credential_type: AwsCredentialType | str | Unset = UNSET region: str | Unset = "us-west-2" multi_modal_config: MultiModalModelIntegrationConfig | None | Unset = UNSET models: list[Model] | Unset = UNSET @@ -47,9 +47,13 @@ def to_dict(self) -> dict[str, Any]: from ..models.aws_sage_maker_integration_extra_type_0 import AwsSageMakerIntegrationExtraType0 from ..models.multi_modal_model_integration_config import MultiModalModelIntegrationConfig - credential_type: str | Unset = UNSET - if not isinstance(self.credential_type, Unset): + credential_type: str | Unset + if isinstance(self.credential_type, Unset): + credential_type = UNSET + elif isinstance(self.credential_type, AwsCredentialType): credential_type = self.credential_type.value + else: + credential_type = self.credential_type region = self.region @@ -115,12 +119,23 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: from ..models.multi_modal_model_integration_config import MultiModalModelIntegrationConfig d = dict(src_dict) - _credential_type = d.pop("credential_type", UNSET) - credential_type: AwsCredentialType | Unset - if isinstance(_credential_type, Unset): - credential_type = UNSET - else: - credential_type = AwsCredentialType(_credential_type) + + def _parse_credential_type(data: object) -> AwsCredentialType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + credential_type_type_0 = AwsCredentialType(data) + + return credential_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for credential_type") + return cast(AwsCredentialType | str | Unset, data) + + credential_type = _parse_credential_type(d.pop("credential_type", UNSET)) region = d.pop("region", UNSET) diff --git a/src/splunk_ao/resources/models/aws_sage_maker_integration_create.py b/src/splunk_ao/resources/models/aws_sage_maker_integration_create.py index 2c91bf10..ed64dfed 100644 --- a/src/splunk_ao/resources/models/aws_sage_maker_integration_create.py +++ b/src/splunk_ao/resources/models/aws_sage_maker_integration_create.py @@ -29,7 +29,7 @@ class AwsSageMakerIntegrationCreate: multi_modal_config (MultiModalModelIntegrationConfig | None | Unset): Configuration for multi-modal (file upload) capabilities. models (list[Model] | Unset): - credential_type (AwsCredentialType | Unset): + credential_type (AwsCredentialType | str | Unset): region (str | Unset): Default: 'us-west-2'. inference_profiles (AwsSageMakerIntegrationCreateInferenceProfiles | Unset): Mapping from model name (Foundation model ID) to inference profile ARN or ID @@ -38,7 +38,7 @@ class AwsSageMakerIntegrationCreate: token: AwsSageMakerIntegrationCreateToken multi_modal_config: MultiModalModelIntegrationConfig | None | Unset = UNSET models: list[Model] | Unset = UNSET - credential_type: AwsCredentialType | Unset = UNSET + credential_type: AwsCredentialType | str | Unset = UNSET region: str | Unset = "us-west-2" inference_profiles: AwsSageMakerIntegrationCreateInferenceProfiles | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -63,9 +63,13 @@ def to_dict(self) -> dict[str, Any]: models_item = models_item_data.to_dict() models.append(models_item) - credential_type: str | Unset = UNSET - if not isinstance(self.credential_type, Unset): + credential_type: str | Unset + if isinstance(self.credential_type, Unset): + credential_type = UNSET + elif isinstance(self.credential_type, AwsCredentialType): credential_type = self.credential_type.value + else: + credential_type = self.credential_type region = self.region @@ -127,12 +131,22 @@ def _parse_multi_modal_config(data: object) -> MultiModalModelIntegrationConfig models.append(models_item) - _credential_type = d.pop("credential_type", UNSET) - credential_type: AwsCredentialType | Unset - if isinstance(_credential_type, Unset): - credential_type = UNSET - else: - credential_type = AwsCredentialType(_credential_type) + def _parse_credential_type(data: object) -> AwsCredentialType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + credential_type_type_0 = AwsCredentialType(data) + + return credential_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for credential_type") + return cast(AwsCredentialType | str | Unset, data) + + credential_type = _parse_credential_type(d.pop("credential_type", UNSET)) region = d.pop("region", UNSET) diff --git a/src/splunk_ao/resources/models/azure_integration.py b/src/splunk_ao/resources/models/azure_integration.py index 82cc7872..9ae4c28f 100644 --- a/src/splunk_ao/resources/models/azure_integration.py +++ b/src/splunk_ao/resources/models/azure_integration.py @@ -31,7 +31,7 @@ class AzureIntegration: proxy (bool | Unset): Default: False. api_version (str | Unset): Default: '2025-03-01-preview'. azure_deployment (None | str | Unset): - authentication_type (AzureAuthenticationType | Unset): + authentication_type (AzureAuthenticationType | str | Unset): authentication_scope (None | str | Unset): default_headers (AzureIntegrationDefaultHeadersType0 | None | Unset): deployments (AzureIntegrationDeployments | Unset): @@ -51,7 +51,7 @@ class AzureIntegration: proxy: bool | Unset = False api_version: str | Unset = "2025-03-01-preview" azure_deployment: None | str | Unset = UNSET - authentication_type: AzureAuthenticationType | Unset = UNSET + authentication_type: AzureAuthenticationType | str | Unset = UNSET authentication_scope: None | str | Unset = UNSET default_headers: AzureIntegrationDefaultHeadersType0 | None | Unset = UNSET deployments: AzureIntegrationDeployments | Unset = UNSET @@ -90,9 +90,13 @@ def to_dict(self) -> dict[str, Any]: else: azure_deployment = self.azure_deployment - authentication_type: str | Unset = UNSET - if not isinstance(self.authentication_type, Unset): + authentication_type: str | Unset + if isinstance(self.authentication_type, Unset): + authentication_type = UNSET + elif isinstance(self.authentication_type, AzureAuthenticationType): authentication_type = self.authentication_type.value + else: + authentication_type = self.authentication_type authentication_scope: None | str | Unset if isinstance(self.authentication_scope, Unset): @@ -234,12 +238,22 @@ def _parse_azure_deployment(data: object) -> None | str | Unset: azure_deployment = _parse_azure_deployment(d.pop("azure_deployment", UNSET)) - _authentication_type = d.pop("authentication_type", UNSET) - authentication_type: AzureAuthenticationType | Unset - if isinstance(_authentication_type, Unset): - authentication_type = UNSET - else: - authentication_type = AzureAuthenticationType(_authentication_type) + def _parse_authentication_type(data: object) -> AzureAuthenticationType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + authentication_type_type_0 = AzureAuthenticationType(data) + + return authentication_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for authentication_type") + return cast(AzureAuthenticationType | str | Unset, data) + + authentication_type = _parse_authentication_type(d.pop("authentication_type", UNSET)) def _parse_authentication_scope(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/azure_integration_create.py b/src/splunk_ao/resources/models/azure_integration_create.py index 7166bdba..fe602659 100644 --- a/src/splunk_ao/resources/models/azure_integration_create.py +++ b/src/splunk_ao/resources/models/azure_integration_create.py @@ -33,7 +33,7 @@ class AzureIntegrationCreate: proxy (bool | Unset): Default: False. api_version (str | Unset): Default: '2025-03-01-preview'. azure_deployment (None | str | Unset): - authentication_type (AzureAuthenticationType | Unset): + authentication_type (AzureAuthenticationType | str | Unset): authentication_scope (None | str | Unset): default_headers (AzureIntegrationCreateDefaultHeadersType0 | None | Unset): deployments (AzureIntegrationCreateDeployments | Unset): @@ -50,7 +50,7 @@ class AzureIntegrationCreate: proxy: bool | Unset = False api_version: str | Unset = "2025-03-01-preview" azure_deployment: None | str | Unset = UNSET - authentication_type: AzureAuthenticationType | Unset = UNSET + authentication_type: AzureAuthenticationType | str | Unset = UNSET authentication_scope: None | str | Unset = UNSET default_headers: AzureIntegrationCreateDefaultHeadersType0 | None | Unset = UNSET deployments: AzureIntegrationCreateDeployments | Unset = UNSET @@ -88,9 +88,13 @@ def to_dict(self) -> dict[str, Any]: else: azure_deployment = self.azure_deployment - authentication_type: str | Unset = UNSET - if not isinstance(self.authentication_type, Unset): + authentication_type: str | Unset + if isinstance(self.authentication_type, Unset): + authentication_type = UNSET + elif isinstance(self.authentication_type, AzureAuthenticationType): authentication_type = self.authentication_type.value + else: + authentication_type = self.authentication_type authentication_scope: None | str | Unset if isinstance(self.authentication_scope, Unset): @@ -209,12 +213,22 @@ def _parse_azure_deployment(data: object) -> None | str | Unset: azure_deployment = _parse_azure_deployment(d.pop("azure_deployment", UNSET)) - _authentication_type = d.pop("authentication_type", UNSET) - authentication_type: AzureAuthenticationType | Unset - if isinstance(_authentication_type, Unset): - authentication_type = UNSET - else: - authentication_type = AzureAuthenticationType(_authentication_type) + def _parse_authentication_type(data: object) -> AzureAuthenticationType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + authentication_type_type_0 = AzureAuthenticationType(data) + + return authentication_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for authentication_type") + return cast(AzureAuthenticationType | str | Unset, data) + + authentication_type = _parse_authentication_type(d.pop("authentication_type", UNSET)) def _parse_authentication_scope(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/base_aws_integration_create.py b/src/splunk_ao/resources/models/base_aws_integration_create.py index 5b7729be..3fda624a 100644 --- a/src/splunk_ao/resources/models/base_aws_integration_create.py +++ b/src/splunk_ao/resources/models/base_aws_integration_create.py @@ -25,7 +25,7 @@ class BaseAwsIntegrationCreate: token (BaseAwsIntegrationCreateToken): multi_modal_config (MultiModalModelIntegrationConfig | None | Unset): Configuration for multi-modal (file upload) capabilities. - credential_type (AwsCredentialType | Unset): + credential_type (AwsCredentialType | str | Unset): region (str | Unset): Default: 'us-west-2'. inference_profiles (BaseAwsIntegrationCreateInferenceProfiles | Unset): Mapping from model name (Foundation model ID) to inference profile ARN or ID @@ -33,7 +33,7 @@ class BaseAwsIntegrationCreate: token: BaseAwsIntegrationCreateToken multi_modal_config: MultiModalModelIntegrationConfig | None | Unset = UNSET - credential_type: AwsCredentialType | Unset = UNSET + credential_type: AwsCredentialType | str | Unset = UNSET region: str | Unset = "us-west-2" inference_profiles: BaseAwsIntegrationCreateInferenceProfiles | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -51,9 +51,13 @@ def to_dict(self) -> dict[str, Any]: else: multi_modal_config = self.multi_modal_config - credential_type: str | Unset = UNSET - if not isinstance(self.credential_type, Unset): + credential_type: str | Unset + if isinstance(self.credential_type, Unset): + credential_type = UNSET + elif isinstance(self.credential_type, AwsCredentialType): credential_type = self.credential_type.value + else: + credential_type = self.credential_type region = self.region @@ -101,12 +105,22 @@ def _parse_multi_modal_config(data: object) -> MultiModalModelIntegrationConfig multi_modal_config = _parse_multi_modal_config(d.pop("multi_modal_config", UNSET)) - _credential_type = d.pop("credential_type", UNSET) - credential_type: AwsCredentialType | Unset - if isinstance(_credential_type, Unset): - credential_type = UNSET - else: - credential_type = AwsCredentialType(_credential_type) + def _parse_credential_type(data: object) -> AwsCredentialType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + credential_type_type_0 = AwsCredentialType(data) + + return credential_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for credential_type") + return cast(AwsCredentialType | str | Unset, data) + + credential_type = _parse_credential_type(d.pop("credential_type", UNSET)) region = d.pop("region", UNSET) diff --git a/src/splunk_ao/resources/models/base_finetuned_scorer_db.py b/src/splunk_ao/resources/models/base_finetuned_scorer_db.py index ef55e354..9675a957 100644 --- a/src/splunk_ao/resources/models/base_finetuned_scorer_db.py +++ b/src/splunk_ao/resources/models/base_finetuned_scorer_db.py @@ -32,12 +32,12 @@ class BaseFinetunedScorerDB: lora_task_id (int): prompt (str): lora_weights_path (None | str | Unset): - luna_input_type (LunaInputTypeEnum | None | Unset): - luna_output_type (LunaOutputTypeEnum | None | Unset): + luna_input_type (LunaInputTypeEnum | None | str | Unset): + luna_output_type (LunaOutputTypeEnum | None | str | Unset): class_name_to_vocab_ix (BaseFinetunedScorerDBClassNameToVocabIxType0 | BaseFinetunedScorerDBClassNameToVocabIxType1 | None | Unset): - executor (CoreScorerName | None | Unset): Executor pipeline. Defaults to finetuned scorer pipeline but can run - custom galileo score pipelines. + executor (CoreScorerName | None | str | Unset): Executor pipeline. Defaults to finetuned scorer pipeline but can + run custom galileo score pipelines. """ id: str @@ -45,12 +45,12 @@ class BaseFinetunedScorerDB: lora_task_id: int prompt: str lora_weights_path: None | str | Unset = UNSET - luna_input_type: LunaInputTypeEnum | None | Unset = UNSET - luna_output_type: LunaOutputTypeEnum | None | Unset = UNSET + luna_input_type: LunaInputTypeEnum | None | str | Unset = UNSET + luna_output_type: LunaOutputTypeEnum | None | str | Unset = UNSET class_name_to_vocab_ix: ( BaseFinetunedScorerDBClassNameToVocabIxType0 | BaseFinetunedScorerDBClassNameToVocabIxType1 | None | Unset ) = UNSET - executor: CoreScorerName | None | Unset = UNSET + executor: CoreScorerName | None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -152,7 +152,7 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: lora_weights_path = _parse_lora_weights_path(d.pop("lora_weights_path", UNSET)) - def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: + def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -165,11 +165,13 @@ def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: return luna_input_type_type_0 except: # noqa: E722 pass - return cast(LunaInputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_input_type") + return cast(LunaInputTypeEnum | None | str | Unset, data) luna_input_type = _parse_luna_input_type(d.pop("luna_input_type", UNSET)) - def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: + def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -182,7 +184,9 @@ def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: return luna_output_type_type_0 except: # noqa: E722 pass - return cast(LunaOutputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_output_type") + return cast(LunaOutputTypeEnum | None | str | Unset, data) luna_output_type = _parse_luna_output_type(d.pop("luna_output_type", UNSET)) @@ -219,7 +223,7 @@ def _parse_class_name_to_vocab_ix( class_name_to_vocab_ix = _parse_class_name_to_vocab_ix(d.pop("class_name_to_vocab_ix", UNSET)) - def _parse_executor(data: object) -> CoreScorerName | None | Unset: + def _parse_executor(data: object) -> CoreScorerName | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -232,7 +236,9 @@ def _parse_executor(data: object) -> CoreScorerName | None | Unset: return executor_type_0 except: # noqa: E722 pass - return cast(CoreScorerName | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for executor") + return cast(CoreScorerName | None | str | Unset, data) executor = _parse_executor(d.pop("executor", UNSET)) diff --git a/src/splunk_ao/resources/models/base_metric_roll_up_config_db.py b/src/splunk_ao/resources/models/base_metric_roll_up_config_db.py index 114092b3..01fcc47f 100644 --- a/src/splunk_ao/resources/models/base_metric_roll_up_config_db.py +++ b/src/splunk_ao/resources/models/base_metric_roll_up_config_db.py @@ -1,7 +1,7 @@ from __future__ import annotations from collections.abc import Mapping -from typing import Any, TypeVar +from typing import Any, TypeVar, cast from attrs import define as _attrs_define from attrs import field as _attrs_field @@ -17,11 +17,11 @@ class BaseMetricRollUpConfigDB: """Configuration for rolling up metrics to parent/trace/session. Attributes: - roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod]): List of roll up methods to apply to - the metric. For numeric scorers we support doing multiple roll up types per metric. + roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str]): List of roll up methods to + apply to the metric. For numeric scorers we support doing multiple roll up types per metric. """ - roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod] + roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -29,7 +29,11 @@ def to_dict(self) -> dict[str, Any]: if isinstance(self.roll_up_methods, list): roll_up_methods = [] for roll_up_methods_type_0_item_data in self.roll_up_methods: - roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + roll_up_methods_type_0_item: str + if isinstance(roll_up_methods_type_0_item_data, NumericRollUpMethod): + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + else: + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data roll_up_methods.append(roll_up_methods_type_0_item) else: @@ -48,14 +52,28 @@ def to_dict(self) -> dict[str, Any]: def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - def _parse_roll_up_methods(data: object) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod]: + def _parse_roll_up_methods(data: object) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str]: try: if not isinstance(data, list): raise TypeError() roll_up_methods_type_0 = [] _roll_up_methods_type_0 = data for roll_up_methods_type_0_item_data in _roll_up_methods_type_0: - roll_up_methods_type_0_item = NumericRollUpMethod(roll_up_methods_type_0_item_data) + + def _parse_roll_up_methods_type_0_item(data: object) -> NumericRollUpMethod | str: + try: + if not isinstance(data, str): + raise TypeError() + roll_up_methods_type_0_item_type_0 = NumericRollUpMethod(data) + + return roll_up_methods_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_methods_type_0_item") + return cast(NumericRollUpMethod | str, data) + + roll_up_methods_type_0_item = _parse_roll_up_methods_type_0_item(roll_up_methods_type_0_item_data) roll_up_methods_type_0.append(roll_up_methods_type_0_item) diff --git a/src/splunk_ao/resources/models/base_scorer.py b/src/splunk_ao/resources/models/base_scorer.py index 34def7d3..d5279fa3 100644 --- a/src/splunk_ao/resources/models/base_scorer.py +++ b/src/splunk_ao/resources/models/base_scorer.py @@ -43,7 +43,7 @@ class BaseScorer: aggregates (BaseScorerAggregatesType0 | None | Unset): aggregate_keys (list[str] | None | Unset): extra (BaseScorerExtraType0 | None | Unset): - sub_scorers (list[ScorerName] | Unset): + sub_scorers (list[ScorerName | str] | Unset): filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): metric_name (None | str | Unset): description (None | str | Unset): @@ -58,21 +58,21 @@ class BaseScorer: scorer_version_id (None | str | Unset): user_code (None | str | Unset): can_copy_to_llm (bool | None | Unset): - scoreable_node_types (list[NodeType] | None | Unset): + scoreable_node_types (list[NodeType | str] | None | Unset): cot_enabled (bool | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): requires_tools_in_llm_span (bool | Unset): Default: False. required_scorers (list[str] | None | Unset): required_metric_ids (list[str] | None | Unset): - roll_up_strategy (None | RollUpStrategy | Unset): - roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset): + roll_up_strategy (None | RollUpStrategy | str | Unset): + roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset): prompt (None | str | Unset): lora_task_id (int | None | Unset): lora_weights_path (None | str | Unset): - luna_input_type (LunaInputTypeEnum | None | Unset): - luna_output_type (LunaOutputTypeEnum | None | Unset): + luna_input_type (LunaInputTypeEnum | None | str | Unset): + luna_output_type (LunaOutputTypeEnum | None | str | Unset): class_name_to_vocab_ix (BaseScorerClassNameToVocabIxType0 | BaseScorerClassNameToVocabIxType1 | None | Unset): scorer_path_name (None | str | Unset): """ @@ -84,7 +84,7 @@ class BaseScorer: aggregates: BaseScorerAggregatesType0 | None | Unset = UNSET aggregate_keys: list[str] | None | Unset = UNSET extra: BaseScorerExtraType0 | None | Unset = UNSET - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET metric_name: None | str | Unset = UNSET description: None | str | Unset = UNSET @@ -99,21 +99,21 @@ class BaseScorer: scorer_version_id: None | str | Unset = UNSET user_code: None | str | Unset = UNSET can_copy_to_llm: bool | None | Unset = UNSET - scoreable_node_types: list[NodeType] | None | Unset = UNSET + scoreable_node_types: list[NodeType | str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET requires_tools_in_llm_span: bool | Unset = False required_scorers: list[str] | None | Unset = UNSET required_metric_ids: list[str] | None | Unset = UNSET - roll_up_strategy: None | RollUpStrategy | Unset = UNSET - roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset = UNSET + roll_up_strategy: None | RollUpStrategy | str | Unset = UNSET + roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset = UNSET prompt: None | str | Unset = UNSET lora_task_id: int | None | Unset = UNSET lora_weights_path: None | str | Unset = UNSET - luna_input_type: LunaInputTypeEnum | None | Unset = UNSET - luna_output_type: LunaOutputTypeEnum | None | Unset = UNSET + luna_input_type: LunaInputTypeEnum | None | str | Unset = UNSET + luna_output_type: LunaOutputTypeEnum | None | str | Unset = UNSET class_name_to_vocab_ix: BaseScorerClassNameToVocabIxType0 | BaseScorerClassNameToVocabIxType1 | None | Unset = UNSET scorer_path_name: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -178,7 +178,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.sub_scorers, Unset): sub_scorers = [] for sub_scorers_item_data in self.sub_scorers: - sub_scorers_item = sub_scorers_item_data.value + sub_scorers_item: str + if isinstance(sub_scorers_item_data, ScorerName): + sub_scorers_item = sub_scorers_item_data.value + else: + sub_scorers_item = sub_scorers_item_data sub_scorers.append(sub_scorers_item) filters: list[dict[str, Any]] | None | Unset @@ -282,7 +286,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.scoreable_node_types, list): scoreable_node_types = [] for scoreable_node_types_type_0_item_data in self.scoreable_node_types: - scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + scoreable_node_types_type_0_item: str + if isinstance(scoreable_node_types_type_0_item_data, NodeType): + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + else: + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data scoreable_node_types.append(scoreable_node_types_type_0_item) else: @@ -316,7 +324,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -356,7 +368,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.roll_up_methods, list): roll_up_methods = [] for roll_up_methods_type_0_item_data in self.roll_up_methods: - roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + roll_up_methods_type_0_item: str + if isinstance(roll_up_methods_type_0_item_data, NumericRollUpMethod): + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + else: + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data roll_up_methods.append(roll_up_methods_type_0_item) elif isinstance(self.roll_up_methods, list): @@ -604,11 +620,25 @@ def _parse_extra(data: object) -> BaseScorerExtraType0 | None | Unset: extra = _parse_extra(d.pop("extra", UNSET)) _sub_scorers = d.pop("sub_scorers", UNSET) - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET if _sub_scorers is not UNSET: sub_scorers = [] for sub_scorers_item_data in _sub_scorers: - sub_scorers_item = ScorerName(sub_scorers_item_data) + + def _parse_sub_scorers_item(data: object) -> ScorerName | str: + try: + if not isinstance(data, str): + raise TypeError() + sub_scorers_item_type_0 = ScorerName(data) + + return sub_scorers_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for sub_scorers_item") + return cast(ScorerName | str, data) + + sub_scorers_item = _parse_sub_scorers_item(sub_scorers_item_data) sub_scorers.append(sub_scorers_item) @@ -776,7 +806,7 @@ def _parse_can_copy_to_llm(data: object) -> bool | None | Unset: can_copy_to_llm = _parse_can_copy_to_llm(d.pop("can_copy_to_llm", UNSET)) - def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: + def _parse_scoreable_node_types(data: object) -> list[NodeType | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -787,14 +817,30 @@ def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: scoreable_node_types_type_0 = [] _scoreable_node_types_type_0 = data for scoreable_node_types_type_0_item_data in _scoreable_node_types_type_0: - scoreable_node_types_type_0_item = NodeType(scoreable_node_types_type_0_item_data) + + def _parse_scoreable_node_types_type_0_item(data: object) -> NodeType | str: + try: + if not isinstance(data, str): + raise TypeError() + scoreable_node_types_type_0_item_type_0 = NodeType(data) + + return scoreable_node_types_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scoreable_node_types_type_0_item") + return cast(NodeType | str, data) + + scoreable_node_types_type_0_item = _parse_scoreable_node_types_type_0_item( + scoreable_node_types_type_0_item_data + ) scoreable_node_types_type_0.append(scoreable_node_types_type_0_item) return scoreable_node_types_type_0 except: # noqa: E722 pass - return cast(list[NodeType] | None | Unset, data) + return cast(list[NodeType | str] | None | Unset, data) scoreable_node_types = _parse_scoreable_node_types(d.pop("scoreable_node_types", UNSET)) @@ -807,7 +853,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -820,11 +866,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -837,11 +885,13 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -852,14 +902,30 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) @@ -899,7 +965,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: required_metric_ids = _parse_required_metric_ids(d.pop("required_metric_ids", UNSET)) - def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: + def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -912,13 +978,15 @@ def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: return roll_up_strategy_type_0 except: # noqa: E722 pass - return cast(None | RollUpStrategy | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_strategy") + return cast(None | RollUpStrategy | str | Unset, data) roll_up_strategy = _parse_roll_up_strategy(d.pop("roll_up_strategy", UNSET)) def _parse_roll_up_methods( data: object, - ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset: + ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -929,7 +997,21 @@ def _parse_roll_up_methods( roll_up_methods_type_0 = [] _roll_up_methods_type_0 = data for roll_up_methods_type_0_item_data in _roll_up_methods_type_0: - roll_up_methods_type_0_item = NumericRollUpMethod(roll_up_methods_type_0_item_data) + + def _parse_roll_up_methods_type_0_item(data: object) -> NumericRollUpMethod | str: + try: + if not isinstance(data, str): + raise TypeError() + roll_up_methods_type_0_item_type_0 = NumericRollUpMethod(data) + + return roll_up_methods_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_methods_type_0_item") + return cast(NumericRollUpMethod | str, data) + + roll_up_methods_type_0_item = _parse_roll_up_methods_type_0_item(roll_up_methods_type_0_item_data) roll_up_methods_type_0.append(roll_up_methods_type_0_item) @@ -949,7 +1031,7 @@ def _parse_roll_up_methods( return roll_up_methods_type_1 except: # noqa: E722 pass - return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset, data) + return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset, data) roll_up_methods = _parse_roll_up_methods(d.pop("roll_up_methods", UNSET)) @@ -980,7 +1062,7 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: lora_weights_path = _parse_lora_weights_path(d.pop("lora_weights_path", UNSET)) - def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: + def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -993,11 +1075,13 @@ def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: return luna_input_type_type_0 except: # noqa: E722 pass - return cast(LunaInputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_input_type") + return cast(LunaInputTypeEnum | None | str | Unset, data) luna_input_type = _parse_luna_input_type(d.pop("luna_input_type", UNSET)) - def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: + def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -1010,7 +1094,9 @@ def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: return luna_output_type_type_0 except: # noqa: E722 pass - return cast(LunaOutputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_output_type") + return cast(LunaOutputTypeEnum | None | str | Unset, data) luna_output_type = _parse_luna_output_type(d.pop("luna_output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/base_scorer_version_db.py b/src/splunk_ao/resources/models/base_scorer_version_db.py index 6cd812e1..6c0faba1 100644 --- a/src/splunk_ao/resources/models/base_scorer_version_db.py +++ b/src/splunk_ao/resources/models/base_scorer_version_db.py @@ -38,9 +38,9 @@ class BaseScorerVersionDB: to llm/chat. cot_enabled (bool | None | Unset): Whether to enable chain of thought for this scorer. Defaults to False for llm scorers. - output_type (None | OutputTypeEnum | Unset): What type of output to use for model-based scorers + output_type (None | OutputTypeEnum | str | Unset): What type of output to use for model-based scorers (sessions_normalized, trace_io_only, etc.). - input_type (InputTypeEnum | None | Unset): What type of input to use for model-based scorers + input_type (InputTypeEnum | None | str | Unset): What type of input to use for model-based scorers (sessions_normalized, trace_io_only, etc.). """ @@ -55,8 +55,8 @@ class BaseScorerVersionDB: num_judges: int | None | Unset = UNSET scoreable_node_types: list[str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -298,7 +298,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -311,11 +311,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -328,7 +330,9 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) diff --git a/src/splunk_ao/resources/models/base_scorer_version_response.py b/src/splunk_ao/resources/models/base_scorer_version_response.py index 2dcb1ea6..d5c82adf 100644 --- a/src/splunk_ao/resources/models/base_scorer_version_response.py +++ b/src/splunk_ao/resources/models/base_scorer_version_response.py @@ -39,8 +39,8 @@ class BaseScorerVersionResponse: num_judges (int | None | Unset): scoreable_node_types (list[str] | None | Unset): cot_enabled (bool | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): What type of input to use for model-based scorers + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): What type of input to use for model-based scorers (sessions_normalized, trace_io_only, etc.). chain_poll_template (ChainPollTemplate | None | Unset): allowed_model (bool | None | Unset): @@ -60,8 +60,8 @@ class BaseScorerVersionResponse: num_judges: int | None | Unset = UNSET scoreable_node_types: list[str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET chain_poll_template: ChainPollTemplate | None | Unset = UNSET allowed_model: bool | None | Unset = UNSET created_by: None | str | Unset = UNSET @@ -344,7 +344,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -357,11 +357,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -374,7 +376,9 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) diff --git a/src/splunk_ao/resources/models/billing_usage_response.py b/src/splunk_ao/resources/models/billing_usage_response.py index 3296e3cb..9b00b0c0 100644 --- a/src/splunk_ao/resources/models/billing_usage_response.py +++ b/src/splunk_ao/resources/models/billing_usage_response.py @@ -20,14 +20,14 @@ class BillingUsageResponse: """ Attributes: - metric (BillingUsageMetric): + metric (BillingUsageMetric | str): total (int | Unset): Default: 0. projects (list[ProjectBillingUsage] | Unset): available (bool | Unset): Default: True. unavailable_reason (None | str | Unset): """ - metric: BillingUsageMetric + metric: BillingUsageMetric | str total: int | Unset = 0 projects: list[ProjectBillingUsage] | Unset = UNSET available: bool | Unset = True @@ -35,7 +35,11 @@ class BillingUsageResponse: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - metric = self.metric.value + metric: str + if isinstance(self.metric, BillingUsageMetric): + metric = self.metric.value + else: + metric = self.metric total = self.total @@ -73,7 +77,21 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: from ..models.project_billing_usage import ProjectBillingUsage d = dict(src_dict) - metric = BillingUsageMetric(d.pop("metric")) + + def _parse_metric(data: object) -> BillingUsageMetric | str: + try: + if not isinstance(data, str): + raise TypeError() + metric_type_0 = BillingUsageMetric(data) + + return metric_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for metric") + return cast(BillingUsageMetric | str, data) + + metric = _parse_metric(d.pop("metric")) total = d.pop("total", UNSET) diff --git a/src/splunk_ao/resources/models/boolean_color_constraint.py b/src/splunk_ao/resources/models/boolean_color_constraint.py index 9d3758a0..f98a6e8e 100644 --- a/src/splunk_ao/resources/models/boolean_color_constraint.py +++ b/src/splunk_ao/resources/models/boolean_color_constraint.py @@ -24,18 +24,22 @@ class BooleanColorConstraint: {"color": "red", "operator": "eq", "value": false} Attributes: - color (MetricColor): Allowed colors for metric threshold visualization in the UI. + color (MetricColor | str): operator (Literal['eq']): value (bool): """ - color: MetricColor + color: MetricColor | str operator: Literal["eq"] value: bool additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - color = self.color.value + color: str + if isinstance(self.color, MetricColor): + color = self.color.value + else: + color = self.color operator = self.operator @@ -50,7 +54,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - color = MetricColor(d.pop("color")) + + def _parse_color(data: object) -> MetricColor | str: + try: + if not isinstance(data, str): + raise TypeError() + color_type_0 = MetricColor(data) + + return color_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for color") + return cast(MetricColor | str, data) + + color = _parse_color(d.pop("color")) operator = cast(Literal["eq"], d.pop("operator")) if operator != "eq": diff --git a/src/splunk_ao/resources/models/bucketed_metric.py b/src/splunk_ao/resources/models/bucketed_metric.py index 67b9d173..cf1101d2 100644 --- a/src/splunk_ao/resources/models/bucketed_metric.py +++ b/src/splunk_ao/resources/models/bucketed_metric.py @@ -24,15 +24,15 @@ class BucketedMetric: name (str): buckets (BucketedMetricBuckets): average (float | None | Unset): - roll_up_method (None | RollUpMethodDisplayOptions | Unset): - data_type (None | OutputTypeEnum | Unset): + roll_up_method (None | RollUpMethodDisplayOptions | str | Unset): + data_type (None | OutputTypeEnum | str | Unset): """ name: str buckets: BucketedMetricBuckets average: float | None | Unset = UNSET - roll_up_method: None | RollUpMethodDisplayOptions | Unset = UNSET - data_type: None | OutputTypeEnum | Unset = UNSET + roll_up_method: None | RollUpMethodDisplayOptions | str | Unset = UNSET + data_type: None | OutputTypeEnum | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -92,7 +92,7 @@ def _parse_average(data: object) -> float | None | Unset: average = _parse_average(d.pop("average", UNSET)) - def _parse_roll_up_method(data: object) -> None | RollUpMethodDisplayOptions | Unset: + def _parse_roll_up_method(data: object) -> None | RollUpMethodDisplayOptions | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -105,11 +105,13 @@ def _parse_roll_up_method(data: object) -> None | RollUpMethodDisplayOptions | U return roll_up_method_type_0 except: # noqa: E722 pass - return cast(None | RollUpMethodDisplayOptions | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_method") + return cast(None | RollUpMethodDisplayOptions | str | Unset, data) roll_up_method = _parse_roll_up_method(d.pop("roll_up_method", UNSET)) - def _parse_data_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_data_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -122,7 +124,9 @@ def _parse_data_type(data: object) -> None | OutputTypeEnum | Unset: return data_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for data_type") + return cast(None | OutputTypeEnum | str | Unset, data) data_type = _parse_data_type(d.pop("data_type", UNSET)) diff --git a/src/splunk_ao/resources/models/categorical_color_constraint.py b/src/splunk_ao/resources/models/categorical_color_constraint.py index e264573e..9b8ad380 100644 --- a/src/splunk_ao/resources/models/categorical_color_constraint.py +++ b/src/splunk_ao/resources/models/categorical_color_constraint.py @@ -27,20 +27,28 @@ class CategoricalColorConstraint: {"color": "red", "operator": "one_of", "value": ["fail", "error"]} Attributes: - color (MetricColor): Allowed colors for metric threshold visualization in the UI. - operator (CategoricalColorConstraintOperator): + color (MetricColor | str): + operator (CategoricalColorConstraintOperator | str): value (list[str] | str): """ - color: MetricColor - operator: CategoricalColorConstraintOperator + color: MetricColor | str + operator: CategoricalColorConstraintOperator | str value: list[str] | str additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - color = self.color.value + color: str + if isinstance(self.color, MetricColor): + color = self.color.value + else: + color = self.color - operator = self.operator.value + operator: str + if isinstance(self.operator, CategoricalColorConstraintOperator): + operator = self.operator.value + else: + operator = self.operator value: list[str] | str if isinstance(self.value, list): @@ -58,9 +66,36 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - color = MetricColor(d.pop("color")) - operator = CategoricalColorConstraintOperator(d.pop("operator")) + def _parse_color(data: object) -> MetricColor | str: + try: + if not isinstance(data, str): + raise TypeError() + color_type_0 = MetricColor(data) + + return color_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for color") + return cast(MetricColor | str, data) + + color = _parse_color(d.pop("color")) + + def _parse_operator(data: object) -> CategoricalColorConstraintOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = CategoricalColorConstraintOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(CategoricalColorConstraintOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> list[str] | str: try: diff --git a/src/splunk_ao/resources/models/chunk_attribution_utilization_scorer.py b/src/splunk_ao/resources/models/chunk_attribution_utilization_scorer.py index 8a93337c..efa144ce 100644 --- a/src/splunk_ao/resources/models/chunk_attribution_utilization_scorer.py +++ b/src/splunk_ao/resources/models/chunk_attribution_utilization_scorer.py @@ -25,13 +25,14 @@ class ChunkAttributionUtilizationScorer: name (Literal['chunk_attribution_utilization'] | Unset): Default: 'chunk_attribution_utilization'. filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): List of filters to apply to the scorer. - type_ (ChunkAttributionUtilizationScorerType | Unset): Default: ChunkAttributionUtilizationScorerType.LUNA. + type_ (ChunkAttributionUtilizationScorerType | str | Unset): Default: + ChunkAttributionUtilizationScorerType.LUNA. model_name (None | str | Unset): Alias of the model to use for the scorer. """ name: Literal["chunk_attribution_utilization"] | Unset = "chunk_attribution_utilization" filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET - type_: ChunkAttributionUtilizationScorerType | Unset = ChunkAttributionUtilizationScorerType.LUNA + type_: ChunkAttributionUtilizationScorerType | str | Unset = ChunkAttributionUtilizationScorerType.LUNA model_name: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -60,9 +61,13 @@ def to_dict(self) -> dict[str, Any]: else: filters = self.filters - type_: str | Unset = UNSET - if not isinstance(self.type_, Unset): + type_: str | Unset + if isinstance(self.type_, Unset): + type_ = UNSET + elif isinstance(self.type_, ChunkAttributionUtilizationScorerType): type_ = self.type_.value + else: + type_ = self.type_ model_name: None | str | Unset if isinstance(self.model_name, Unset): @@ -141,12 +146,22 @@ def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter filters = _parse_filters(d.pop("filters", UNSET)) - _type_ = d.pop("type", UNSET) - type_: ChunkAttributionUtilizationScorerType | Unset - if isinstance(_type_, Unset): - type_ = UNSET - else: - type_ = ChunkAttributionUtilizationScorerType(_type_) + def _parse_type_(data: object) -> ChunkAttributionUtilizationScorerType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + type_type_0 = ChunkAttributionUtilizationScorerType(data) + + return type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(ChunkAttributionUtilizationScorerType | str | Unset, data) + + type_ = _parse_type_(d.pop("type", UNSET)) def _parse_model_name(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/code_metric_generation_status_response.py b/src/splunk_ao/resources/models/code_metric_generation_status_response.py index 38e053ce..2e1bfa40 100644 --- a/src/splunk_ao/resources/models/code_metric_generation_status_response.py +++ b/src/splunk_ao/resources/models/code_metric_generation_status_response.py @@ -18,13 +18,13 @@ class CodeMetricGenerationStatusResponse: Attributes: id (str): - status (CodeMetricGenerationStatus): + status (CodeMetricGenerationStatus | str): generated_code (None | str | Unset): error_message (None | str | Unset): """ id: str - status: CodeMetricGenerationStatus + status: CodeMetricGenerationStatus | str generated_code: None | str | Unset = UNSET error_message: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -32,7 +32,11 @@ class CodeMetricGenerationStatusResponse: def to_dict(self) -> dict[str, Any]: id = self.id - status = self.status.value + status: str + if isinstance(self.status, CodeMetricGenerationStatus): + status = self.status.value + else: + status = self.status generated_code: None | str | Unset if isinstance(self.generated_code, Unset): @@ -61,7 +65,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) id = d.pop("id") - status = CodeMetricGenerationStatus(d.pop("status")) + def _parse_status(data: object) -> CodeMetricGenerationStatus | str: + try: + if not isinstance(data, str): + raise TypeError() + status_type_0 = CodeMetricGenerationStatus(data) + + return status_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for status") + return cast(CodeMetricGenerationStatus | str, data) + + status = _parse_status(d.pop("status")) def _parse_generated_code(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/collaborator_role_info.py b/src/splunk_ao/resources/models/collaborator_role_info.py index 8ad9c23c..a4c6d4dd 100644 --- a/src/splunk_ao/resources/models/collaborator_role_info.py +++ b/src/splunk_ao/resources/models/collaborator_role_info.py @@ -1,7 +1,7 @@ from __future__ import annotations from collections.abc import Mapping -from typing import Any, TypeVar +from typing import Any, TypeVar, cast from attrs import define as _attrs_define from attrs import field as _attrs_field @@ -15,18 +15,22 @@ class CollaboratorRoleInfo: """ Attributes: - name (CollaboratorRole): + name (CollaboratorRole | str): display_name (str): description (str): """ - name: CollaboratorRole + name: CollaboratorRole | str display_name: str description: str additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - name = self.name.value + name: str + if isinstance(self.name, CollaboratorRole): + name = self.name.value + else: + name = self.name display_name = self.display_name @@ -41,7 +45,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - name = CollaboratorRole(d.pop("name")) + + def _parse_name(data: object) -> CollaboratorRole | str: + try: + if not isinstance(data, str): + raise TypeError() + name_type_0 = CollaboratorRole(data) + + return name_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for name") + return cast(CollaboratorRole | str, data) + + name = _parse_name(d.pop("name")) display_name = d.pop("display_name") diff --git a/src/splunk_ao/resources/models/collaborator_update.py b/src/splunk_ao/resources/models/collaborator_update.py index a45a53d1..90108772 100644 --- a/src/splunk_ao/resources/models/collaborator_update.py +++ b/src/splunk_ao/resources/models/collaborator_update.py @@ -1,7 +1,7 @@ from __future__ import annotations from collections.abc import Mapping -from typing import Any, TypeVar +from typing import Any, TypeVar, cast from attrs import define as _attrs_define from attrs import field as _attrs_field @@ -15,14 +15,18 @@ class CollaboratorUpdate: """ Attributes: - role (CollaboratorRole): + role (CollaboratorRole | str): """ - role: CollaboratorRole + role: CollaboratorRole | str additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - role = self.role.value + role: str + if isinstance(self.role, CollaboratorRole): + role = self.role.value + else: + role = self.role field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -33,7 +37,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - role = CollaboratorRole(d.pop("role")) + + def _parse_role(data: object) -> CollaboratorRole | str: + try: + if not isinstance(data, str): + raise TypeError() + role_type_0 = CollaboratorRole(data) + + return role_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for role") + return cast(CollaboratorRole | str, data) + + role = _parse_role(d.pop("role")) collaborator_update = cls(role=role) diff --git a/src/splunk_ao/resources/models/column_info.py b/src/splunk_ao/resources/models/column_info.py index feae87f3..658c1369 100644 --- a/src/splunk_ao/resources/models/column_info.py +++ b/src/splunk_ao/resources/models/column_info.py @@ -20,19 +20,19 @@ class ColumnInfo: """ Attributes: id (str): Column id. Must be universally unique. - category (ColumnCategory): - data_type (DataType | None): Data type of the column. This is used to determine how to format the data on the - UI. + category (ColumnCategory | str): Category of the column. + data_type (DataType | None | str): Data type of the column. This is used to determine how to format the data on + the UI. label (None | str | Unset): Display label of the column in the UI. description (None | str | Unset): Description of the column. group_label (None | str | Unset): Display label of the column group. - data_unit (DataUnit | None | Unset): Data unit of the column (optional). + data_unit (DataUnit | None | str | Unset): Data unit of the column (optional). multi_valued (bool | Unset): Whether the column is multi-valued. Default: False. allowed_values (list[Any] | None | Unset): Allowed values for this column. sortable (bool | Unset): Whether the column is sortable. filterable (bool | Unset): Whether the column is filterable. is_empty (bool | Unset): Indicates whether the column is empty and should be hidden. Default: False. - applicable_types (list[StepType] | Unset): List of types applicable for this column. + applicable_types (list[StepType | str] | Unset): List of types applicable for this column. is_optional (bool | Unset): Whether the column is optional. Default: False. roll_up_method (None | str | Unset): Default roll-up aggregation method for this metric (e.g., 'sum', 'average'). @@ -41,18 +41,18 @@ class ColumnInfo: """ id: str - category: ColumnCategory - data_type: DataType | None + category: ColumnCategory | str + data_type: DataType | None | str label: None | str | Unset = UNSET description: None | str | Unset = UNSET group_label: None | str | Unset = UNSET - data_unit: DataUnit | None | Unset = UNSET + data_unit: DataUnit | None | str | Unset = UNSET multi_valued: bool | Unset = False allowed_values: list[Any] | None | Unset = UNSET sortable: bool | Unset = UNSET filterable: bool | Unset = UNSET is_empty: bool | Unset = False - applicable_types: list[StepType] | Unset = UNSET + applicable_types: list[StepType | str] | Unset = UNSET is_optional: bool | Unset = False roll_up_method: None | str | Unset = UNSET metric_key_alias: None | str | Unset = UNSET @@ -61,7 +61,11 @@ class ColumnInfo: def to_dict(self) -> dict[str, Any]: id = self.id - category = self.category.value + category: str + if isinstance(self.category, ColumnCategory): + category = self.category.value + else: + category = self.category data_type: None | str if isinstance(self.data_type, DataType): @@ -116,7 +120,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.applicable_types, Unset): applicable_types = [] for applicable_types_item_data in self.applicable_types: - applicable_types_item = applicable_types_item_data.value + applicable_types_item: str + if isinstance(applicable_types_item_data, StepType): + applicable_types_item = applicable_types_item_data.value + else: + applicable_types_item = applicable_types_item_data applicable_types.append(applicable_types_item) is_optional = self.is_optional @@ -170,9 +178,22 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) id = d.pop("id") - category = ColumnCategory(d.pop("category")) + def _parse_category(data: object) -> ColumnCategory | str: + try: + if not isinstance(data, str): + raise TypeError() + category_type_0 = ColumnCategory(data) - def _parse_data_type(data: object) -> DataType | None: + return category_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for category") + return cast(ColumnCategory | str, data) + + category = _parse_category(d.pop("category")) + + def _parse_data_type(data: object) -> DataType | None | str: if data is None: return data try: @@ -183,7 +204,9 @@ def _parse_data_type(data: object) -> DataType | None: return data_type_type_0 except: # noqa: E722 pass - return cast(DataType | None, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for data_type") + return cast(DataType | None | str, data) data_type = _parse_data_type(d.pop("data_type")) @@ -214,7 +237,7 @@ def _parse_group_label(data: object) -> None | str | Unset: group_label = _parse_group_label(d.pop("group_label", UNSET)) - def _parse_data_unit(data: object) -> DataUnit | None | Unset: + def _parse_data_unit(data: object) -> DataUnit | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -227,7 +250,9 @@ def _parse_data_unit(data: object) -> DataUnit | None | Unset: return data_unit_type_0 except: # noqa: E722 pass - return cast(DataUnit | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for data_unit") + return cast(DataUnit | None | str | Unset, data) data_unit = _parse_data_unit(d.pop("data_unit", UNSET)) @@ -257,11 +282,25 @@ def _parse_allowed_values(data: object) -> list[Any] | None | Unset: is_empty = d.pop("is_empty", UNSET) _applicable_types = d.pop("applicable_types", UNSET) - applicable_types: list[StepType] | Unset = UNSET + applicable_types: list[StepType | str] | Unset = UNSET if _applicable_types is not UNSET: applicable_types = [] for applicable_types_item_data in _applicable_types: - applicable_types_item = StepType(applicable_types_item_data) + + def _parse_applicable_types_item(data: object) -> StepType | str: + try: + if not isinstance(data, str): + raise TypeError() + applicable_types_item_type_0 = StepType(data) + + return applicable_types_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for applicable_types_item") + return cast(StepType | str, data) + + applicable_types_item = _parse_applicable_types_item(applicable_types_item_data) applicable_types.append(applicable_types_item) diff --git a/src/splunk_ao/resources/models/completeness_scorer.py b/src/splunk_ao/resources/models/completeness_scorer.py index fcbcd1ab..1125e25a 100644 --- a/src/splunk_ao/resources/models/completeness_scorer.py +++ b/src/splunk_ao/resources/models/completeness_scorer.py @@ -25,14 +25,14 @@ class CompletenessScorer: name (Literal['completeness'] | Unset): Default: 'completeness'. filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): List of filters to apply to the scorer. - type_ (CompletenessScorerType | Unset): Default: CompletenessScorerType.LUNA. + type_ (CompletenessScorerType | str | Unset): Default: CompletenessScorerType.LUNA. model_name (None | str | Unset): Alias of the model to use for the scorer. num_judges (int | None | Unset): Number of judges for the scorer. """ name: Literal["completeness"] | Unset = "completeness" filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET - type_: CompletenessScorerType | Unset = CompletenessScorerType.LUNA + type_: CompletenessScorerType | str | Unset = CompletenessScorerType.LUNA model_name: None | str | Unset = UNSET num_judges: int | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -62,9 +62,13 @@ def to_dict(self) -> dict[str, Any]: else: filters = self.filters - type_: str | Unset = UNSET - if not isinstance(self.type_, Unset): + type_: str | Unset + if isinstance(self.type_, Unset): + type_ = UNSET + elif isinstance(self.type_, CompletenessScorerType): type_ = self.type_.value + else: + type_ = self.type_ model_name: None | str | Unset if isinstance(self.model_name, Unset): @@ -151,12 +155,22 @@ def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter filters = _parse_filters(d.pop("filters", UNSET)) - _type_ = d.pop("type", UNSET) - type_: CompletenessScorerType | Unset - if isinstance(_type_, Unset): - type_ = UNSET - else: - type_ = CompletenessScorerType(_type_) + def _parse_type_(data: object) -> CompletenessScorerType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + type_type_0 = CompletenessScorerType(data) + + return type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(CompletenessScorerType | str | Unset, data) + + type_ = _parse_type_(d.pop("type", UNSET)) def _parse_model_name(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/compute_health_score_request.py b/src/splunk_ao/resources/models/compute_health_score_request.py index 459080a8..b3b4a353 100644 --- a/src/splunk_ao/resources/models/compute_health_score_request.py +++ b/src/splunk_ao/resources/models/compute_health_score_request.py @@ -1,7 +1,7 @@ from __future__ import annotations from collections.abc import Mapping -from typing import TYPE_CHECKING, Any, TypeVar +from typing import TYPE_CHECKING, Any, TypeVar, cast from attrs import define as _attrs_define from attrs import field as _attrs_field @@ -22,29 +22,37 @@ class ComputeHealthScoreRequest: """ Attributes: scorer_id (str): - output_type (OutputTypeEnum): Enumeration of output types. - scoreable_node_types (list[StepType] | Unset): The scorer's scoreable_node_types. Determines which record type - carries the score. + output_type (OutputTypeEnum | str): The scorer's output type, used to dispatch the correct metric. + scoreable_node_types (list[StepType | str] | Unset): The scorer's scoreable_node_types. Determines which record + type carries the score. mgt_overlay (ComputeHealthScoreRequestMgtOverlay | Unset): Client-side pending MGT edits: {row_id: value}. Overrides committed dataset values. """ scorer_id: str - output_type: OutputTypeEnum - scoreable_node_types: list[StepType] | Unset = UNSET + output_type: OutputTypeEnum | str + scoreable_node_types: list[StepType | str] | Unset = UNSET mgt_overlay: ComputeHealthScoreRequestMgtOverlay | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: scorer_id = self.scorer_id - output_type = self.output_type.value + output_type: str + if isinstance(self.output_type, OutputTypeEnum): + output_type = self.output_type.value + else: + output_type = self.output_type scoreable_node_types: list[str] | Unset = UNSET if not isinstance(self.scoreable_node_types, Unset): scoreable_node_types = [] for scoreable_node_types_item_data in self.scoreable_node_types: - scoreable_node_types_item = scoreable_node_types_item_data.value + scoreable_node_types_item: str + if isinstance(scoreable_node_types_item_data, StepType): + scoreable_node_types_item = scoreable_node_types_item_data.value + else: + scoreable_node_types_item = scoreable_node_types_item_data scoreable_node_types.append(scoreable_node_types_item) mgt_overlay: dict[str, Any] | Unset = UNSET @@ -68,14 +76,41 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) scorer_id = d.pop("scorer_id") - output_type = OutputTypeEnum(d.pop("output_type")) + def _parse_output_type(data: object) -> OutputTypeEnum | str: + try: + if not isinstance(data, str): + raise TypeError() + output_type_type_0 = OutputTypeEnum(data) + + return output_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(OutputTypeEnum | str, data) + + output_type = _parse_output_type(d.pop("output_type")) _scoreable_node_types = d.pop("scoreable_node_types", UNSET) - scoreable_node_types: list[StepType] | Unset = UNSET + scoreable_node_types: list[StepType | str] | Unset = UNSET if _scoreable_node_types is not UNSET: scoreable_node_types = [] for scoreable_node_types_item_data in _scoreable_node_types: - scoreable_node_types_item = StepType(scoreable_node_types_item_data) + + def _parse_scoreable_node_types_item(data: object) -> StepType | str: + try: + if not isinstance(data, str): + raise TypeError() + scoreable_node_types_item_type_0 = StepType(data) + + return scoreable_node_types_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scoreable_node_types_item") + return cast(StepType | str, data) + + scoreable_node_types_item = _parse_scoreable_node_types_item(scoreable_node_types_item_data) scoreable_node_types.append(scoreable_node_types_item) diff --git a/src/splunk_ao/resources/models/context_adherence_scorer.py b/src/splunk_ao/resources/models/context_adherence_scorer.py index 88c7e881..af138b7c 100644 --- a/src/splunk_ao/resources/models/context_adherence_scorer.py +++ b/src/splunk_ao/resources/models/context_adherence_scorer.py @@ -25,14 +25,14 @@ class ContextAdherenceScorer: name (Literal['context_adherence'] | Unset): Default: 'context_adherence'. filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): List of filters to apply to the scorer. - type_ (ContextAdherenceScorerType | Unset): Default: ContextAdherenceScorerType.LUNA. + type_ (ContextAdherenceScorerType | str | Unset): Default: ContextAdherenceScorerType.LUNA. model_name (None | str | Unset): Alias of the model to use for the scorer. num_judges (int | None | Unset): Number of judges for the scorer. """ name: Literal["context_adherence"] | Unset = "context_adherence" filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET - type_: ContextAdherenceScorerType | Unset = ContextAdherenceScorerType.LUNA + type_: ContextAdherenceScorerType | str | Unset = ContextAdherenceScorerType.LUNA model_name: None | str | Unset = UNSET num_judges: int | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -62,9 +62,13 @@ def to_dict(self) -> dict[str, Any]: else: filters = self.filters - type_: str | Unset = UNSET - if not isinstance(self.type_, Unset): + type_: str | Unset + if isinstance(self.type_, Unset): + type_ = UNSET + elif isinstance(self.type_, ContextAdherenceScorerType): type_ = self.type_.value + else: + type_ = self.type_ model_name: None | str | Unset if isinstance(self.model_name, Unset): @@ -151,12 +155,22 @@ def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter filters = _parse_filters(d.pop("filters", UNSET)) - _type_ = d.pop("type", UNSET) - type_: ContextAdherenceScorerType | Unset - if isinstance(_type_, Unset): - type_ = UNSET - else: - type_ = ContextAdherenceScorerType(_type_) + def _parse_type_(data: object) -> ContextAdherenceScorerType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + type_type_0 = ContextAdherenceScorerType(data) + + return type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(ContextAdherenceScorerType | str | Unset, data) + + type_ = _parse_type_(d.pop("type", UNSET)) def _parse_model_name(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/control_applies_to.py b/src/splunk_ao/resources/models/control_applies_to.py index d3b97542..554b52cf 100644 --- a/src/splunk_ao/resources/models/control_applies_to.py +++ b/src/splunk_ao/resources/models/control_applies_to.py @@ -3,7 +3,10 @@ class ControlAppliesTo(str, Enum): LLM_CALL = "llm_call" + RETRIEVER_CALL = "retriever_call" + SESSION_CALL = "session_call" TOOL_CALL = "tool_call" + TRACE_CALL = "trace_call" def __str__(self) -> str: return str(self.value) diff --git a/src/splunk_ao/resources/models/control_result.py b/src/splunk_ao/resources/models/control_result.py index 66b482fd..c6671449 100644 --- a/src/splunk_ao/resources/models/control_result.py +++ b/src/splunk_ao/resources/models/control_result.py @@ -16,7 +16,7 @@ class ControlResult: """ Attributes: - action (ControlAction): + action (ControlAction | str): Decision/action produced by the control. matched (bool): Whether the control matched. False covers both non-match and error cases; use error_message to distinguish errors. confidence (float | None | Unset): Confidence score reported by the control evaluation result. @@ -24,14 +24,18 @@ class ControlResult: matches and non-matches. """ - action: ControlAction + action: ControlAction | str matched: bool confidence: float | None | Unset = UNSET error_message: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - action = self.action.value + action: str + if isinstance(self.action, ControlAction): + action = self.action.value + else: + action = self.action matched = self.matched @@ -60,7 +64,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - action = ControlAction(d.pop("action")) + + def _parse_action(data: object) -> ControlAction | str: + try: + if not isinstance(data, str): + raise TypeError() + action_type_0 = ControlAction(data) + + return action_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for action") + return cast(ControlAction | str, data) + + action = _parse_action(d.pop("action")) matched = d.pop("matched") diff --git a/src/splunk_ao/resources/models/control_span.py b/src/splunk_ao/resources/models/control_span.py index 1100fe98..f1edf0f2 100644 --- a/src/splunk_ao/resources/models/control_span.py +++ b/src/splunk_ao/resources/models/control_span.py @@ -52,9 +52,9 @@ class ControlSpan: parent_id (None | str | Unset): Galileo ID of the parent of this span control_id (int | None | Unset): Identifier of the control definition that produced this span. agent_name (None | str | Unset): Normalized agent name associated with this control execution. - check_stage (ControlCheckStage | None | Unset): Execution stage where the control ran, typically 'pre' or + check_stage (ControlCheckStage | None | str | Unset): Execution stage where the control ran, typically 'pre' or 'post'. - applies_to (ControlAppliesTo | None | Unset): Parent execution type the control applied to, for example + applies_to (ControlAppliesTo | None | str | Unset): Parent execution type the control applied to, for example 'llm_call' or 'tool_call'. evaluator_name (None | str | Unset): Representative evaluator name for this control span. For composite controls, this is the primary evaluator chosen for observability identity. @@ -84,8 +84,8 @@ class ControlSpan: parent_id: None | str | Unset = UNSET control_id: int | None | Unset = UNSET agent_name: None | str | Unset = UNSET - check_stage: ControlCheckStage | None | Unset = UNSET - applies_to: ControlAppliesTo | None | Unset = UNSET + check_stage: ControlCheckStage | None | str | Unset = UNSET + applies_to: ControlAppliesTo | None | str | Unset = UNSET evaluator_name: None | str | Unset = UNSET selector_path: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -614,7 +614,7 @@ def _parse_agent_name(data: object) -> None | str | Unset: agent_name = _parse_agent_name(d.pop("agent_name", UNSET)) - def _parse_check_stage(data: object) -> ControlCheckStage | None | Unset: + def _parse_check_stage(data: object) -> ControlCheckStage | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -627,11 +627,13 @@ def _parse_check_stage(data: object) -> ControlCheckStage | None | Unset: return check_stage_type_0 except: # noqa: E722 pass - return cast(ControlCheckStage | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for check_stage") + return cast(ControlCheckStage | None | str | Unset, data) check_stage = _parse_check_stage(d.pop("check_stage", UNSET)) - def _parse_applies_to(data: object) -> ControlAppliesTo | None | Unset: + def _parse_applies_to(data: object) -> ControlAppliesTo | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -644,7 +646,9 @@ def _parse_applies_to(data: object) -> ControlAppliesTo | None | Unset: return applies_to_type_0 except: # noqa: E722 pass - return cast(ControlAppliesTo | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for applies_to") + return cast(ControlAppliesTo | None | str | Unset, data) applies_to = _parse_applies_to(d.pop("applies_to", UNSET)) diff --git a/src/splunk_ao/resources/models/create_code_metric_generation_request.py b/src/splunk_ao/resources/models/create_code_metric_generation_request.py index 9da24ec1..9efa8492 100644 --- a/src/splunk_ao/resources/models/create_code_metric_generation_request.py +++ b/src/splunk_ao/resources/models/create_code_metric_generation_request.py @@ -20,14 +20,14 @@ class CreateCodeMetricGenerationRequest: user_message (str): Natural language, code, or combination node_type (None | str | Unset): Selected scoreable node type (llm, retriever, trace, agent, workflow, tool, session) - output_type (None | OutputTypeEnum | Unset): Selected output type (boolean, percentage, count, discrete, + output_type (None | OutputTypeEnum | str | Unset): Selected output type (boolean, percentage, count, discrete, categorical, multilabel, freeform) model_name (None | str | Unset): Model alias to use for generation. Defaults to best available. """ user_message: str node_type: None | str | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET model_name: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -80,7 +80,7 @@ def _parse_node_type(data: object) -> None | str | Unset: node_type = _parse_node_type(d.pop("node_type", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -93,7 +93,9 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/create_code_metric_generation_response.py b/src/splunk_ao/resources/models/create_code_metric_generation_response.py index 987d638f..02e5328a 100644 --- a/src/splunk_ao/resources/models/create_code_metric_generation_response.py +++ b/src/splunk_ao/resources/models/create_code_metric_generation_response.py @@ -1,7 +1,7 @@ from __future__ import annotations from collections.abc import Mapping -from typing import Any, TypeVar +from typing import Any, TypeVar, cast from attrs import define as _attrs_define from attrs import field as _attrs_field @@ -17,17 +17,21 @@ class CreateCodeMetricGenerationResponse: Attributes: id (str): - status (CodeMetricGenerationStatus): + status (CodeMetricGenerationStatus | str): """ id: str - status: CodeMetricGenerationStatus + status: CodeMetricGenerationStatus | str additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: id = self.id - status = self.status.value + status: str + if isinstance(self.status, CodeMetricGenerationStatus): + status = self.status.value + else: + status = self.status field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -40,7 +44,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) id = d.pop("id") - status = CodeMetricGenerationStatus(d.pop("status")) + def _parse_status(data: object) -> CodeMetricGenerationStatus | str: + try: + if not isinstance(data, str): + raise TypeError() + status_type_0 = CodeMetricGenerationStatus(data) + + return status_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for status") + return cast(CodeMetricGenerationStatus | str, data) + + status = _parse_status(d.pop("status")) create_code_metric_generation_response = cls(id=id, status=status) diff --git a/src/splunk_ao/resources/models/create_custom_luna_scorer_version_request.py b/src/splunk_ao/resources/models/create_custom_luna_scorer_version_request.py index 8c094907..30f91773 100644 --- a/src/splunk_ao/resources/models/create_custom_luna_scorer_version_request.py +++ b/src/splunk_ao/resources/models/create_custom_luna_scorer_version_request.py @@ -21,18 +21,18 @@ class CreateCustomLunaScorerVersionRequest: lora_task_id (int): prompt (str): lora_weights_path (None | str | Unset): - executor (CoreScorerName | None | Unset): Executor pipeline. Defaults to finetuned scorer pipeline but can run - custom galileo score pipelines. - luna_input_type (LunaInputTypeEnum | None | Unset): - luna_output_type (LunaOutputTypeEnum | None | Unset): + executor (CoreScorerName | None | str | Unset): Executor pipeline. Defaults to finetuned scorer pipeline but can + run custom galileo score pipelines. + luna_input_type (LunaInputTypeEnum | None | str | Unset): + luna_output_type (LunaOutputTypeEnum | None | str | Unset): """ lora_task_id: int prompt: str lora_weights_path: None | str | Unset = UNSET - executor: CoreScorerName | None | Unset = UNSET - luna_input_type: LunaInputTypeEnum | None | Unset = UNSET - luna_output_type: LunaOutputTypeEnum | None | Unset = UNSET + executor: CoreScorerName | None | str | Unset = UNSET + luna_input_type: LunaInputTypeEnum | None | str | Unset = UNSET + luna_output_type: LunaOutputTypeEnum | None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -100,7 +100,7 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: lora_weights_path = _parse_lora_weights_path(d.pop("lora_weights_path", UNSET)) - def _parse_executor(data: object) -> CoreScorerName | None | Unset: + def _parse_executor(data: object) -> CoreScorerName | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -113,11 +113,13 @@ def _parse_executor(data: object) -> CoreScorerName | None | Unset: return executor_type_0 except: # noqa: E722 pass - return cast(CoreScorerName | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for executor") + return cast(CoreScorerName | None | str | Unset, data) executor = _parse_executor(d.pop("executor", UNSET)) - def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: + def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -130,11 +132,13 @@ def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: return luna_input_type_type_0 except: # noqa: E722 pass - return cast(LunaInputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_input_type") + return cast(LunaInputTypeEnum | None | str | Unset, data) luna_input_type = _parse_luna_input_type(d.pop("luna_input_type", UNSET)) - def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: + def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -147,7 +151,9 @@ def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: return luna_output_type_type_0 except: # noqa: E722 pass - return cast(LunaOutputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_output_type") + return cast(LunaOutputTypeEnum | None | str | Unset, data) luna_output_type = _parse_luna_output_type(d.pop("luna_output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/create_decision_scorer_version_request.py b/src/splunk_ao/resources/models/create_decision_scorer_version_request.py index 4bc7aea2..a33d76c6 100644 --- a/src/splunk_ao/resources/models/create_decision_scorer_version_request.py +++ b/src/splunk_ao/resources/models/create_decision_scorer_version_request.py @@ -31,8 +31,8 @@ class CreateDecisionScorerVersionRequest: num_judges (int | None | Unset): scoreable_node_types (list[str] | None | Unset): cot_enabled (bool | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): answer_options (list[DecisionLevel] | list[str] | None | Unset): """ @@ -41,8 +41,8 @@ class CreateDecisionScorerVersionRequest: num_judges: int | None | Unset = UNSET scoreable_node_types: list[str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET answer_options: list[DecisionLevel] | list[str] | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -165,7 +165,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -178,11 +178,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -195,7 +197,9 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) diff --git a/src/splunk_ao/resources/models/create_job_request.py b/src/splunk_ao/resources/models/create_job_request.py index cf729392..7fd94e59 100644 --- a/src/splunk_ao/resources/models/create_job_request.py +++ b/src/splunk_ao/resources/models/create_job_request.py @@ -73,7 +73,7 @@ class CreateJobRequest: job_name (str | Unset): Default: 'log_stream_scorer'. should_retry (bool | Unset): Default: True. user_id (None | str | Unset): - task_type (None | TaskType | Unset): + task_type (int | None | TaskType | Unset): labels (list[list[str]] | list[str] | Unset): ner_labels (list[str] | None | Unset): tasks (list[str] | None | Unset): @@ -109,7 +109,7 @@ class CreateJobRequest: | Unset): prompt_scorer_settings (BaseScorer | None | Unset): scorer_config (None | ScorerConfig | Unset): - sub_scorers (list[ScorerName] | Unset): + sub_scorers (list[ScorerName | str] | Unset): luna_model (None | str | Unset): segment_filters (list[SegmentFilter] | None | Unset): is_session (bool | None | Unset): @@ -129,7 +129,7 @@ class CreateJobRequest: job_name: str | Unset = "log_stream_scorer" should_retry: bool | Unset = True user_id: None | str | Unset = UNSET - task_type: None | TaskType | Unset = UNSET + task_type: int | None | TaskType | Unset = UNSET labels: list[list[str]] | list[str] | Unset = UNSET ner_labels: list[str] | None | Unset = UNSET tasks: list[str] | None | Unset = UNSET @@ -200,7 +200,7 @@ class CreateJobRequest: ) = UNSET prompt_scorer_settings: BaseScorer | None | Unset = UNSET scorer_config: None | ScorerConfig | Unset = UNSET - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET luna_model: None | str | Unset = UNSET segment_filters: list[SegmentFilter] | None | Unset = UNSET is_session: bool | None | Unset = UNSET @@ -620,7 +620,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.sub_scorers, Unset): sub_scorers = [] for sub_scorers_item_data in self.sub_scorers: - sub_scorers_item = sub_scorers_item_data.value + sub_scorers_item: str + if isinstance(sub_scorers_item_data, ScorerName): + sub_scorers_item = sub_scorers_item_data.value + else: + sub_scorers_item = sub_scorers_item_data sub_scorers.append(sub_scorers_item) luna_model: None | str | Unset @@ -850,7 +854,7 @@ def _parse_user_id(data: object) -> None | str | Unset: user_id = _parse_user_id(d.pop("user_id", UNSET)) - def _parse_task_type(data: object) -> None | TaskType | Unset: + def _parse_task_type(data: object) -> int | None | TaskType | Unset: if data is None: return data if isinstance(data, Unset): @@ -863,7 +867,9 @@ def _parse_task_type(data: object) -> None | TaskType | Unset: return task_type_type_0 except: # noqa: E722 pass - return cast(None | TaskType | Unset, data) + if type(data) not in (int,): + raise TypeError("Unexpected value type for task_type") + return cast(int | None | TaskType | Unset, data) task_type = _parse_task_type(d.pop("task_type", UNSET)) @@ -1684,11 +1690,25 @@ def _parse_scorer_config(data: object) -> None | ScorerConfig | Unset: scorer_config = _parse_scorer_config(d.pop("scorer_config", UNSET)) _sub_scorers = d.pop("sub_scorers", UNSET) - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET if _sub_scorers is not UNSET: sub_scorers = [] for sub_scorers_item_data in _sub_scorers: - sub_scorers_item = ScorerName(sub_scorers_item_data) + + def _parse_sub_scorers_item(data: object) -> ScorerName | str: + try: + if not isinstance(data, str): + raise TypeError() + sub_scorers_item_type_0 = ScorerName(data) + + return sub_scorers_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for sub_scorers_item") + return cast(ScorerName | str, data) + + sub_scorers_item = _parse_sub_scorers_item(sub_scorers_item_data) sub_scorers.append(sub_scorers_item) diff --git a/src/splunk_ao/resources/models/create_job_response.py b/src/splunk_ao/resources/models/create_job_response.py index 16f60906..57935d5e 100644 --- a/src/splunk_ao/resources/models/create_job_response.py +++ b/src/splunk_ao/resources/models/create_job_response.py @@ -75,7 +75,7 @@ class CreateJobResponse: job_name (str | Unset): Default: 'log_stream_scorer'. should_retry (bool | Unset): Default: True. user_id (None | str | Unset): - task_type (None | TaskType | Unset): + task_type (int | None | TaskType | Unset): labels (list[list[str]] | list[str] | Unset): ner_labels (list[str] | None | Unset): tasks (list[str] | None | Unset): @@ -111,7 +111,7 @@ class CreateJobResponse: | Unset): prompt_scorer_settings (BaseScorer | None | Unset): scorer_config (None | ScorerConfig | Unset): - sub_scorers (list[ScorerName] | Unset): + sub_scorers (list[ScorerName | str] | Unset): luna_model (None | str | Unset): segment_filters (list[SegmentFilter] | None | Unset): is_session (bool | None | Unset): @@ -133,7 +133,7 @@ class CreateJobResponse: job_name: str | Unset = "log_stream_scorer" should_retry: bool | Unset = True user_id: None | str | Unset = UNSET - task_type: None | TaskType | Unset = UNSET + task_type: int | None | TaskType | Unset = UNSET labels: list[list[str]] | list[str] | Unset = UNSET ner_labels: list[str] | None | Unset = UNSET tasks: list[str] | None | Unset = UNSET @@ -204,7 +204,7 @@ class CreateJobResponse: ) = UNSET prompt_scorer_settings: BaseScorer | None | Unset = UNSET scorer_config: None | ScorerConfig | Unset = UNSET - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET luna_model: None | str | Unset = UNSET segment_filters: list[SegmentFilter] | None | Unset = UNSET is_session: bool | None | Unset = UNSET @@ -628,7 +628,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.sub_scorers, Unset): sub_scorers = [] for sub_scorers_item_data in self.sub_scorers: - sub_scorers_item = sub_scorers_item_data.value + sub_scorers_item: str + if isinstance(sub_scorers_item_data, ScorerName): + sub_scorers_item = sub_scorers_item_data.value + else: + sub_scorers_item = sub_scorers_item_data sub_scorers.append(sub_scorers_item) luna_model: None | str | Unset @@ -862,7 +866,7 @@ def _parse_user_id(data: object) -> None | str | Unset: user_id = _parse_user_id(d.pop("user_id", UNSET)) - def _parse_task_type(data: object) -> None | TaskType | Unset: + def _parse_task_type(data: object) -> int | None | TaskType | Unset: if data is None: return data if isinstance(data, Unset): @@ -875,7 +879,9 @@ def _parse_task_type(data: object) -> None | TaskType | Unset: return task_type_type_0 except: # noqa: E722 pass - return cast(None | TaskType | Unset, data) + if type(data) not in (int,): + raise TypeError("Unexpected value type for task_type") + return cast(int | None | TaskType | Unset, data) task_type = _parse_task_type(d.pop("task_type", UNSET)) @@ -1696,11 +1702,25 @@ def _parse_scorer_config(data: object) -> None | ScorerConfig | Unset: scorer_config = _parse_scorer_config(d.pop("scorer_config", UNSET)) _sub_scorers = d.pop("sub_scorers", UNSET) - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET if _sub_scorers is not UNSET: sub_scorers = [] for sub_scorers_item_data in _sub_scorers: - sub_scorers_item = ScorerName(sub_scorers_item_data) + + def _parse_sub_scorers_item(data: object) -> ScorerName | str: + try: + if not isinstance(data, str): + raise TypeError() + sub_scorers_item_type_0 = ScorerName(data) + + return sub_scorers_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for sub_scorers_item") + return cast(ScorerName | str, data) + + sub_scorers_item = _parse_sub_scorers_item(sub_scorers_item_data) sub_scorers.append(sub_scorers_item) diff --git a/src/splunk_ao/resources/models/create_llm_scorer_autogen_request.py b/src/splunk_ao/resources/models/create_llm_scorer_autogen_request.py index 706746b8..8932ea77 100644 --- a/src/splunk_ao/resources/models/create_llm_scorer_autogen_request.py +++ b/src/splunk_ao/resources/models/create_llm_scorer_autogen_request.py @@ -17,14 +17,14 @@ class CreateLLMScorerAutogenRequest: Attributes: instructions (str): model_name (str): - output_type (OutputTypeEnum): Enumeration of output types. + output_type (OutputTypeEnum | str): cot_enabled (bool): scoreable_node_types (list[str]): """ instructions: str model_name: str - output_type: OutputTypeEnum + output_type: OutputTypeEnum | str cot_enabled: bool scoreable_node_types: list[str] additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -34,7 +34,11 @@ def to_dict(self) -> dict[str, Any]: model_name = self.model_name - output_type = self.output_type.value + output_type: str + if isinstance(self.output_type, OutputTypeEnum): + output_type = self.output_type.value + else: + output_type = self.output_type cot_enabled = self.cot_enabled @@ -61,7 +65,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: model_name = d.pop("model_name") - output_type = OutputTypeEnum(d.pop("output_type")) + def _parse_output_type(data: object) -> OutputTypeEnum | str: + try: + if not isinstance(data, str): + raise TypeError() + output_type_type_0 = OutputTypeEnum(data) + + return output_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(OutputTypeEnum | str, data) + + output_type = _parse_output_type(d.pop("output_type")) cot_enabled = d.pop("cot_enabled") diff --git a/src/splunk_ao/resources/models/create_llm_scorer_version_request.py b/src/splunk_ao/resources/models/create_llm_scorer_version_request.py index baca0b8f..4b6c611b 100644 --- a/src/splunk_ao/resources/models/create_llm_scorer_version_request.py +++ b/src/splunk_ao/resources/models/create_llm_scorer_version_request.py @@ -25,8 +25,8 @@ class CreateLLMScorerVersionRequest: num_judges (int | None | Unset): scoreable_node_types (list[str] | None | Unset): cot_enabled (bool | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): instructions (None | str | Unset): chain_poll_template (ChainPollTemplate | None | Unset): user_prompt (None | str | Unset): @@ -36,8 +36,8 @@ class CreateLLMScorerVersionRequest: num_judges: int | None | Unset = UNSET scoreable_node_types: list[str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET instructions: None | str | Unset = UNSET chain_poll_template: ChainPollTemplate | None | Unset = UNSET user_prompt: None | str | Unset = UNSET @@ -183,7 +183,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -196,11 +196,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -213,7 +215,9 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) diff --git a/src/splunk_ao/resources/models/create_scorer_request.py b/src/splunk_ao/resources/models/create_scorer_request.py index 05274eac..4ae691ef 100644 --- a/src/splunk_ao/resources/models/create_scorer_request.py +++ b/src/splunk_ao/resources/models/create_scorer_request.py @@ -30,24 +30,24 @@ class CreateScorerRequest: """ Attributes: name (str): - scorer_type (ScorerTypes): + scorer_type (ScorerTypes | str): id (None | str | Unset): label (None | str | Unset): description (None | str | Unset): Default: ''. tags (list[str] | Unset): defaults (None | ScorerDefaults | Unset): deprecated (bool | None | Unset): - model_type (ModelType | None | Unset): + model_type (ModelType | None | str | Unset): ground_truth (bool | None | Unset): default_version_id (None | str | Unset): user_prompt (None | str | Unset): scoreable_node_types (list[str] | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): required_scorers (list[str] | None | Unset): required_metric_ids (list[str] | None | Unset): - roll_up_method (None | RollUpMethodDisplayOptions | Unset): + roll_up_method (None | RollUpMethodDisplayOptions | str | Unset): metric_color_picker_config (MetricColorPickerBoolean | MetricColorPickerCategorical | MetricColorPickerMultiLabel | MetricColorPickerNumeric | None | Unset): is_global (bool | None | Unset): @@ -55,24 +55,24 @@ class CreateScorerRequest: """ name: str - scorer_type: ScorerTypes + scorer_type: ScorerTypes | str id: None | str | Unset = UNSET label: None | str | Unset = UNSET description: None | str | Unset = "" tags: list[str] | Unset = UNSET defaults: None | ScorerDefaults | Unset = UNSET deprecated: bool | None | Unset = UNSET - model_type: ModelType | None | Unset = UNSET + model_type: ModelType | None | str | Unset = UNSET ground_truth: bool | None | Unset = UNSET default_version_id: None | str | Unset = UNSET user_prompt: None | str | Unset = UNSET scoreable_node_types: list[str] | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET required_scorers: list[str] | None | Unset = UNSET required_metric_ids: list[str] | None | Unset = UNSET - roll_up_method: None | RollUpMethodDisplayOptions | Unset = UNSET + roll_up_method: None | RollUpMethodDisplayOptions | str | Unset = UNSET metric_color_picker_config: ( MetricColorPickerBoolean | MetricColorPickerCategorical @@ -94,7 +94,11 @@ def to_dict(self) -> dict[str, Any]: name = self.name - scorer_type = self.scorer_type.value + scorer_type: str + if isinstance(self.scorer_type, ScorerTypes): + scorer_type = self.scorer_type.value + else: + scorer_type = self.scorer_type id: None | str | Unset if isinstance(self.id, Unset): @@ -189,7 +193,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -302,7 +310,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) name = d.pop("name") - scorer_type = ScorerTypes(d.pop("scorer_type")) + def _parse_scorer_type(data: object) -> ScorerTypes | str: + try: + if not isinstance(data, str): + raise TypeError() + scorer_type_type_0 = ScorerTypes(data) + + return scorer_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scorer_type") + return cast(ScorerTypes | str, data) + + scorer_type = _parse_scorer_type(d.pop("scorer_type")) def _parse_id(data: object) -> None | str | Unset: if data is None: @@ -359,7 +380,7 @@ def _parse_deprecated(data: object) -> bool | None | Unset: deprecated = _parse_deprecated(d.pop("deprecated", UNSET)) - def _parse_model_type(data: object) -> ModelType | None | Unset: + def _parse_model_type(data: object) -> ModelType | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -372,7 +393,9 @@ def _parse_model_type(data: object) -> ModelType | None | Unset: return model_type_type_0 except: # noqa: E722 pass - return cast(ModelType | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for model_type") + return cast(ModelType | None | str | Unset, data) model_type = _parse_model_type(d.pop("model_type", UNSET)) @@ -420,7 +443,7 @@ def _parse_scoreable_node_types(data: object) -> list[str] | None | Unset: scoreable_node_types = _parse_scoreable_node_types(d.pop("scoreable_node_types", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -433,11 +456,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -450,11 +475,13 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -465,14 +492,30 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) @@ -510,7 +553,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: required_metric_ids = _parse_required_metric_ids(d.pop("required_metric_ids", UNSET)) - def _parse_roll_up_method(data: object) -> None | RollUpMethodDisplayOptions | Unset: + def _parse_roll_up_method(data: object) -> None | RollUpMethodDisplayOptions | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -523,7 +566,9 @@ def _parse_roll_up_method(data: object) -> None | RollUpMethodDisplayOptions | U return roll_up_method_type_0 except: # noqa: E722 pass - return cast(None | RollUpMethodDisplayOptions | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_method") + return cast(None | RollUpMethodDisplayOptions | str | Unset, data) roll_up_method = _parse_roll_up_method(d.pop("roll_up_method", UNSET)) diff --git a/src/splunk_ao/resources/models/create_scorer_version_request.py b/src/splunk_ao/resources/models/create_scorer_version_request.py index ea89881d..ec2298ad 100644 --- a/src/splunk_ao/resources/models/create_scorer_version_request.py +++ b/src/splunk_ao/resources/models/create_scorer_version_request.py @@ -21,16 +21,16 @@ class CreateScorerVersionRequest: num_judges (int | None | Unset): scoreable_node_types (list[str] | None | Unset): cot_enabled (bool | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): """ model_name: None | str | Unset = UNSET num_judges: int | None | Unset = UNSET scoreable_node_types: list[str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -143,7 +143,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -156,11 +156,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -173,7 +175,9 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) diff --git a/src/splunk_ao/resources/models/create_update_registered_scorer_response.py b/src/splunk_ao/resources/models/create_update_registered_scorer_response.py index 53159207..e6350ebc 100644 --- a/src/splunk_ao/resources/models/create_update_registered_scorer_response.py +++ b/src/splunk_ao/resources/models/create_update_registered_scorer_response.py @@ -22,7 +22,7 @@ class CreateUpdateRegisteredScorerResponse: created_at (datetime.datetime): updated_at (datetime.datetime): created_by (str): - data_type (DataTypeOptions | None): + data_type (DataTypeOptions | None | str): scoreable_node_types (list[str] | None): """ @@ -32,7 +32,7 @@ class CreateUpdateRegisteredScorerResponse: created_at: datetime.datetime updated_at: datetime.datetime created_by: str - data_type: DataTypeOptions | None + data_type: DataTypeOptions | None | str scoreable_node_types: list[str] | None additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -100,7 +100,7 @@ def _parse_score_type(data: object) -> None | str: created_by = d.pop("created_by") - def _parse_data_type(data: object) -> DataTypeOptions | None: + def _parse_data_type(data: object) -> DataTypeOptions | None | str: if data is None: return data try: @@ -111,7 +111,9 @@ def _parse_data_type(data: object) -> DataTypeOptions | None: return data_type_type_0 except: # noqa: E722 pass - return cast(DataTypeOptions | None, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for data_type") + return cast(DataTypeOptions | None | str, data) data_type = _parse_data_type(d.pop("data_type")) diff --git a/src/splunk_ao/resources/models/customized_agentic_session_success_gpt_scorer.py b/src/splunk_ao/resources/models/customized_agentic_session_success_gpt_scorer.py index 52d76a09..7b045efb 100644 --- a/src/splunk_ao/resources/models/customized_agentic_session_success_gpt_scorer.py +++ b/src/splunk_ao/resources/models/customized_agentic_session_success_gpt_scorer.py @@ -54,7 +54,7 @@ class CustomizedAgenticSessionSuccessGPTScorer: aggregates (CustomizedAgenticSessionSuccessGPTScorerAggregatesType0 | None | Unset): aggregate_keys (list[str] | Unset): extra (CustomizedAgenticSessionSuccessGPTScorerExtraType0 | None | Unset): - sub_scorers (list[ScorerName] | Unset): + sub_scorers (list[ScorerName | str] | Unset): filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): metric_name (None | str | Unset): description (None | str | Unset): @@ -68,21 +68,21 @@ class CustomizedAgenticSessionSuccessGPTScorer: scorer_version_id (None | str | Unset): user_code (None | str | Unset): can_copy_to_llm (bool | None | Unset): - scoreable_node_types (list[NodeType] | None | Unset): + scoreable_node_types (list[NodeType | str] | None | Unset): cot_enabled (bool | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): requires_tools_in_llm_span (bool | Unset): Default: False. required_scorers (list[str] | None | Unset): required_metric_ids (list[str] | None | Unset): - roll_up_strategy (None | RollUpStrategy | Unset): - roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset): + roll_up_strategy (None | RollUpStrategy | str | Unset): + roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset): prompt (None | str | Unset): lora_task_id (int | None | Unset): lora_weights_path (None | str | Unset): - luna_input_type (LunaInputTypeEnum | None | Unset): - luna_output_type (LunaOutputTypeEnum | None | Unset): + luna_input_type (LunaInputTypeEnum | None | str | Unset): + luna_output_type (LunaOutputTypeEnum | None | str | Unset): class_name_to_vocab_ix (CustomizedAgenticSessionSuccessGPTScorerClassNameToVocabIxType0 | CustomizedAgenticSessionSuccessGPTScorerClassNameToVocabIxType1 | None | Unset): scorer_path_name (None | str | Unset): @@ -97,7 +97,7 @@ class CustomizedAgenticSessionSuccessGPTScorer: aggregates: CustomizedAgenticSessionSuccessGPTScorerAggregatesType0 | None | Unset = UNSET aggregate_keys: list[str] | Unset = UNSET extra: CustomizedAgenticSessionSuccessGPTScorerExtraType0 | None | Unset = UNSET - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET metric_name: None | str | Unset = UNSET description: None | str | Unset = UNSET @@ -110,21 +110,21 @@ class CustomizedAgenticSessionSuccessGPTScorer: scorer_version_id: None | str | Unset = UNSET user_code: None | str | Unset = UNSET can_copy_to_llm: bool | None | Unset = UNSET - scoreable_node_types: list[NodeType] | None | Unset = UNSET + scoreable_node_types: list[NodeType | str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET requires_tools_in_llm_span: bool | Unset = False required_scorers: list[str] | None | Unset = UNSET required_metric_ids: list[str] | None | Unset = UNSET - roll_up_strategy: None | RollUpStrategy | Unset = UNSET - roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset = UNSET + roll_up_strategy: None | RollUpStrategy | str | Unset = UNSET + roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset = UNSET prompt: None | str | Unset = UNSET lora_task_id: int | None | Unset = UNSET lora_weights_path: None | str | Unset = UNSET - luna_input_type: LunaInputTypeEnum | None | Unset = UNSET - luna_output_type: LunaOutputTypeEnum | None | Unset = UNSET + luna_input_type: LunaInputTypeEnum | None | str | Unset = UNSET + luna_output_type: LunaOutputTypeEnum | None | str | Unset = UNSET class_name_to_vocab_ix: ( CustomizedAgenticSessionSuccessGPTScorerClassNameToVocabIxType0 | CustomizedAgenticSessionSuccessGPTScorerClassNameToVocabIxType1 @@ -200,7 +200,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.sub_scorers, Unset): sub_scorers = [] for sub_scorers_item_data in self.sub_scorers: - sub_scorers_item = sub_scorers_item_data.value + sub_scorers_item: str + if isinstance(sub_scorers_item_data, ScorerName): + sub_scorers_item = sub_scorers_item_data.value + else: + sub_scorers_item = sub_scorers_item_data sub_scorers.append(sub_scorers_item) filters: list[dict[str, Any]] | None | Unset @@ -288,7 +292,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.scoreable_node_types, list): scoreable_node_types = [] for scoreable_node_types_type_0_item_data in self.scoreable_node_types: - scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + scoreable_node_types_type_0_item: str + if isinstance(scoreable_node_types_type_0_item_data, NodeType): + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + else: + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data scoreable_node_types.append(scoreable_node_types_type_0_item) else: @@ -322,7 +330,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -362,7 +374,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.roll_up_methods, list): roll_up_methods = [] for roll_up_methods_type_0_item_data in self.roll_up_methods: - roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + roll_up_methods_type_0_item: str + if isinstance(roll_up_methods_type_0_item_data, NumericRollUpMethod): + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + else: + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data roll_up_methods.append(roll_up_methods_type_0_item) elif isinstance(self.roll_up_methods, list): @@ -611,11 +627,25 @@ def _parse_extra(data: object) -> CustomizedAgenticSessionSuccessGPTScorerExtraT extra = _parse_extra(d.pop("extra", UNSET)) _sub_scorers = d.pop("sub_scorers", UNSET) - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET if _sub_scorers is not UNSET: sub_scorers = [] for sub_scorers_item_data in _sub_scorers: - sub_scorers_item = ScorerName(sub_scorers_item_data) + + def _parse_sub_scorers_item(data: object) -> ScorerName | str: + try: + if not isinstance(data, str): + raise TypeError() + sub_scorers_item_type_0 = ScorerName(data) + + return sub_scorers_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for sub_scorers_item") + return cast(ScorerName | str, data) + + sub_scorers_item = _parse_sub_scorers_item(sub_scorers_item_data) sub_scorers.append(sub_scorers_item) @@ -755,7 +785,7 @@ def _parse_can_copy_to_llm(data: object) -> bool | None | Unset: can_copy_to_llm = _parse_can_copy_to_llm(d.pop("can_copy_to_llm", UNSET)) - def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: + def _parse_scoreable_node_types(data: object) -> list[NodeType | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -766,14 +796,30 @@ def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: scoreable_node_types_type_0 = [] _scoreable_node_types_type_0 = data for scoreable_node_types_type_0_item_data in _scoreable_node_types_type_0: - scoreable_node_types_type_0_item = NodeType(scoreable_node_types_type_0_item_data) + + def _parse_scoreable_node_types_type_0_item(data: object) -> NodeType | str: + try: + if not isinstance(data, str): + raise TypeError() + scoreable_node_types_type_0_item_type_0 = NodeType(data) + + return scoreable_node_types_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scoreable_node_types_type_0_item") + return cast(NodeType | str, data) + + scoreable_node_types_type_0_item = _parse_scoreable_node_types_type_0_item( + scoreable_node_types_type_0_item_data + ) scoreable_node_types_type_0.append(scoreable_node_types_type_0_item) return scoreable_node_types_type_0 except: # noqa: E722 pass - return cast(list[NodeType] | None | Unset, data) + return cast(list[NodeType | str] | None | Unset, data) scoreable_node_types = _parse_scoreable_node_types(d.pop("scoreable_node_types", UNSET)) @@ -786,7 +832,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -799,11 +845,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -816,11 +864,13 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -831,14 +881,30 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) @@ -878,7 +944,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: required_metric_ids = _parse_required_metric_ids(d.pop("required_metric_ids", UNSET)) - def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: + def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -891,13 +957,15 @@ def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: return roll_up_strategy_type_0 except: # noqa: E722 pass - return cast(None | RollUpStrategy | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_strategy") + return cast(None | RollUpStrategy | str | Unset, data) roll_up_strategy = _parse_roll_up_strategy(d.pop("roll_up_strategy", UNSET)) def _parse_roll_up_methods( data: object, - ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset: + ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -908,7 +976,21 @@ def _parse_roll_up_methods( roll_up_methods_type_0 = [] _roll_up_methods_type_0 = data for roll_up_methods_type_0_item_data in _roll_up_methods_type_0: - roll_up_methods_type_0_item = NumericRollUpMethod(roll_up_methods_type_0_item_data) + + def _parse_roll_up_methods_type_0_item(data: object) -> NumericRollUpMethod | str: + try: + if not isinstance(data, str): + raise TypeError() + roll_up_methods_type_0_item_type_0 = NumericRollUpMethod(data) + + return roll_up_methods_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_methods_type_0_item") + return cast(NumericRollUpMethod | str, data) + + roll_up_methods_type_0_item = _parse_roll_up_methods_type_0_item(roll_up_methods_type_0_item_data) roll_up_methods_type_0.append(roll_up_methods_type_0_item) @@ -928,7 +1010,7 @@ def _parse_roll_up_methods( return roll_up_methods_type_1 except: # noqa: E722 pass - return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset, data) + return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset, data) roll_up_methods = _parse_roll_up_methods(d.pop("roll_up_methods", UNSET)) @@ -959,7 +1041,7 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: lora_weights_path = _parse_lora_weights_path(d.pop("lora_weights_path", UNSET)) - def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: + def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -972,11 +1054,13 @@ def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: return luna_input_type_type_0 except: # noqa: E722 pass - return cast(LunaInputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_input_type") + return cast(LunaInputTypeEnum | None | str | Unset, data) luna_input_type = _parse_luna_input_type(d.pop("luna_input_type", UNSET)) - def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: + def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -989,7 +1073,9 @@ def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: return luna_output_type_type_0 except: # noqa: E722 pass - return cast(LunaOutputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_output_type") + return cast(LunaOutputTypeEnum | None | str | Unset, data) luna_output_type = _parse_luna_output_type(d.pop("luna_output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/customized_agentic_workflow_success_gpt_scorer.py b/src/splunk_ao/resources/models/customized_agentic_workflow_success_gpt_scorer.py index 1ecd0aa2..46419b1d 100644 --- a/src/splunk_ao/resources/models/customized_agentic_workflow_success_gpt_scorer.py +++ b/src/splunk_ao/resources/models/customized_agentic_workflow_success_gpt_scorer.py @@ -54,7 +54,7 @@ class CustomizedAgenticWorkflowSuccessGPTScorer: aggregates (CustomizedAgenticWorkflowSuccessGPTScorerAggregatesType0 | None | Unset): aggregate_keys (list[str] | Unset): extra (CustomizedAgenticWorkflowSuccessGPTScorerExtraType0 | None | Unset): - sub_scorers (list[ScorerName] | Unset): + sub_scorers (list[ScorerName | str] | Unset): filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): metric_name (None | str | Unset): description (None | str | Unset): @@ -68,21 +68,21 @@ class CustomizedAgenticWorkflowSuccessGPTScorer: scorer_version_id (None | str | Unset): user_code (None | str | Unset): can_copy_to_llm (bool | None | Unset): - scoreable_node_types (list[NodeType] | None | Unset): + scoreable_node_types (list[NodeType | str] | None | Unset): cot_enabled (bool | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): requires_tools_in_llm_span (bool | Unset): Default: False. required_scorers (list[str] | None | Unset): required_metric_ids (list[str] | None | Unset): - roll_up_strategy (None | RollUpStrategy | Unset): - roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset): + roll_up_strategy (None | RollUpStrategy | str | Unset): + roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset): prompt (None | str | Unset): lora_task_id (int | None | Unset): lora_weights_path (None | str | Unset): - luna_input_type (LunaInputTypeEnum | None | Unset): - luna_output_type (LunaOutputTypeEnum | None | Unset): + luna_input_type (LunaInputTypeEnum | None | str | Unset): + luna_output_type (LunaOutputTypeEnum | None | str | Unset): class_name_to_vocab_ix (CustomizedAgenticWorkflowSuccessGPTScorerClassNameToVocabIxType0 | CustomizedAgenticWorkflowSuccessGPTScorerClassNameToVocabIxType1 | None | Unset): scorer_path_name (None | str | Unset): @@ -97,7 +97,7 @@ class CustomizedAgenticWorkflowSuccessGPTScorer: aggregates: CustomizedAgenticWorkflowSuccessGPTScorerAggregatesType0 | None | Unset = UNSET aggregate_keys: list[str] | Unset = UNSET extra: CustomizedAgenticWorkflowSuccessGPTScorerExtraType0 | None | Unset = UNSET - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET metric_name: None | str | Unset = UNSET description: None | str | Unset = UNSET @@ -110,21 +110,21 @@ class CustomizedAgenticWorkflowSuccessGPTScorer: scorer_version_id: None | str | Unset = UNSET user_code: None | str | Unset = UNSET can_copy_to_llm: bool | None | Unset = UNSET - scoreable_node_types: list[NodeType] | None | Unset = UNSET + scoreable_node_types: list[NodeType | str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET requires_tools_in_llm_span: bool | Unset = False required_scorers: list[str] | None | Unset = UNSET required_metric_ids: list[str] | None | Unset = UNSET - roll_up_strategy: None | RollUpStrategy | Unset = UNSET - roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset = UNSET + roll_up_strategy: None | RollUpStrategy | str | Unset = UNSET + roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset = UNSET prompt: None | str | Unset = UNSET lora_task_id: int | None | Unset = UNSET lora_weights_path: None | str | Unset = UNSET - luna_input_type: LunaInputTypeEnum | None | Unset = UNSET - luna_output_type: LunaOutputTypeEnum | None | Unset = UNSET + luna_input_type: LunaInputTypeEnum | None | str | Unset = UNSET + luna_output_type: LunaOutputTypeEnum | None | str | Unset = UNSET class_name_to_vocab_ix: ( CustomizedAgenticWorkflowSuccessGPTScorerClassNameToVocabIxType0 | CustomizedAgenticWorkflowSuccessGPTScorerClassNameToVocabIxType1 @@ -200,7 +200,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.sub_scorers, Unset): sub_scorers = [] for sub_scorers_item_data in self.sub_scorers: - sub_scorers_item = sub_scorers_item_data.value + sub_scorers_item: str + if isinstance(sub_scorers_item_data, ScorerName): + sub_scorers_item = sub_scorers_item_data.value + else: + sub_scorers_item = sub_scorers_item_data sub_scorers.append(sub_scorers_item) filters: list[dict[str, Any]] | None | Unset @@ -288,7 +292,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.scoreable_node_types, list): scoreable_node_types = [] for scoreable_node_types_type_0_item_data in self.scoreable_node_types: - scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + scoreable_node_types_type_0_item: str + if isinstance(scoreable_node_types_type_0_item_data, NodeType): + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + else: + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data scoreable_node_types.append(scoreable_node_types_type_0_item) else: @@ -322,7 +330,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -362,7 +374,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.roll_up_methods, list): roll_up_methods = [] for roll_up_methods_type_0_item_data in self.roll_up_methods: - roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + roll_up_methods_type_0_item: str + if isinstance(roll_up_methods_type_0_item_data, NumericRollUpMethod): + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + else: + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data roll_up_methods.append(roll_up_methods_type_0_item) elif isinstance(self.roll_up_methods, list): @@ -613,11 +629,25 @@ def _parse_extra(data: object) -> CustomizedAgenticWorkflowSuccessGPTScorerExtra extra = _parse_extra(d.pop("extra", UNSET)) _sub_scorers = d.pop("sub_scorers", UNSET) - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET if _sub_scorers is not UNSET: sub_scorers = [] for sub_scorers_item_data in _sub_scorers: - sub_scorers_item = ScorerName(sub_scorers_item_data) + + def _parse_sub_scorers_item(data: object) -> ScorerName | str: + try: + if not isinstance(data, str): + raise TypeError() + sub_scorers_item_type_0 = ScorerName(data) + + return sub_scorers_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for sub_scorers_item") + return cast(ScorerName | str, data) + + sub_scorers_item = _parse_sub_scorers_item(sub_scorers_item_data) sub_scorers.append(sub_scorers_item) @@ -757,7 +787,7 @@ def _parse_can_copy_to_llm(data: object) -> bool | None | Unset: can_copy_to_llm = _parse_can_copy_to_llm(d.pop("can_copy_to_llm", UNSET)) - def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: + def _parse_scoreable_node_types(data: object) -> list[NodeType | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -768,14 +798,30 @@ def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: scoreable_node_types_type_0 = [] _scoreable_node_types_type_0 = data for scoreable_node_types_type_0_item_data in _scoreable_node_types_type_0: - scoreable_node_types_type_0_item = NodeType(scoreable_node_types_type_0_item_data) + + def _parse_scoreable_node_types_type_0_item(data: object) -> NodeType | str: + try: + if not isinstance(data, str): + raise TypeError() + scoreable_node_types_type_0_item_type_0 = NodeType(data) + + return scoreable_node_types_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scoreable_node_types_type_0_item") + return cast(NodeType | str, data) + + scoreable_node_types_type_0_item = _parse_scoreable_node_types_type_0_item( + scoreable_node_types_type_0_item_data + ) scoreable_node_types_type_0.append(scoreable_node_types_type_0_item) return scoreable_node_types_type_0 except: # noqa: E722 pass - return cast(list[NodeType] | None | Unset, data) + return cast(list[NodeType | str] | None | Unset, data) scoreable_node_types = _parse_scoreable_node_types(d.pop("scoreable_node_types", UNSET)) @@ -788,7 +834,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -801,11 +847,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -818,11 +866,13 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -833,14 +883,30 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) @@ -880,7 +946,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: required_metric_ids = _parse_required_metric_ids(d.pop("required_metric_ids", UNSET)) - def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: + def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -893,13 +959,15 @@ def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: return roll_up_strategy_type_0 except: # noqa: E722 pass - return cast(None | RollUpStrategy | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_strategy") + return cast(None | RollUpStrategy | str | Unset, data) roll_up_strategy = _parse_roll_up_strategy(d.pop("roll_up_strategy", UNSET)) def _parse_roll_up_methods( data: object, - ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset: + ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -910,7 +978,21 @@ def _parse_roll_up_methods( roll_up_methods_type_0 = [] _roll_up_methods_type_0 = data for roll_up_methods_type_0_item_data in _roll_up_methods_type_0: - roll_up_methods_type_0_item = NumericRollUpMethod(roll_up_methods_type_0_item_data) + + def _parse_roll_up_methods_type_0_item(data: object) -> NumericRollUpMethod | str: + try: + if not isinstance(data, str): + raise TypeError() + roll_up_methods_type_0_item_type_0 = NumericRollUpMethod(data) + + return roll_up_methods_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_methods_type_0_item") + return cast(NumericRollUpMethod | str, data) + + roll_up_methods_type_0_item = _parse_roll_up_methods_type_0_item(roll_up_methods_type_0_item_data) roll_up_methods_type_0.append(roll_up_methods_type_0_item) @@ -930,7 +1012,7 @@ def _parse_roll_up_methods( return roll_up_methods_type_1 except: # noqa: E722 pass - return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset, data) + return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset, data) roll_up_methods = _parse_roll_up_methods(d.pop("roll_up_methods", UNSET)) @@ -961,7 +1043,7 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: lora_weights_path = _parse_lora_weights_path(d.pop("lora_weights_path", UNSET)) - def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: + def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -974,11 +1056,13 @@ def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: return luna_input_type_type_0 except: # noqa: E722 pass - return cast(LunaInputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_input_type") + return cast(LunaInputTypeEnum | None | str | Unset, data) luna_input_type = _parse_luna_input_type(d.pop("luna_input_type", UNSET)) - def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: + def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -991,7 +1075,9 @@ def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: return luna_output_type_type_0 except: # noqa: E722 pass - return cast(LunaOutputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_output_type") + return cast(LunaOutputTypeEnum | None | str | Unset, data) luna_output_type = _parse_luna_output_type(d.pop("luna_output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/customized_chunk_attribution_utilization_gpt_scorer.py b/src/splunk_ao/resources/models/customized_chunk_attribution_utilization_gpt_scorer.py index 7dae0f9a..a4d3f25d 100644 --- a/src/splunk_ao/resources/models/customized_chunk_attribution_utilization_gpt_scorer.py +++ b/src/splunk_ao/resources/models/customized_chunk_attribution_utilization_gpt_scorer.py @@ -54,7 +54,7 @@ class CustomizedChunkAttributionUtilizationGPTScorer: aggregates (CustomizedChunkAttributionUtilizationGPTScorerAggregatesType0 | None | Unset): aggregate_keys (list[str] | Unset): extra (CustomizedChunkAttributionUtilizationGPTScorerExtraType0 | None | Unset): - sub_scorers (list[ScorerName] | Unset): + sub_scorers (list[ScorerName | str] | Unset): filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): metric_name (None | str | Unset): description (None | str | Unset): @@ -67,21 +67,21 @@ class CustomizedChunkAttributionUtilizationGPTScorer: scorer_version_id (None | str | Unset): user_code (None | str | Unset): can_copy_to_llm (bool | None | Unset): - scoreable_node_types (list[NodeType] | None | Unset): + scoreable_node_types (list[NodeType | str] | None | Unset): cot_enabled (bool | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): requires_tools_in_llm_span (bool | Unset): Default: False. required_scorers (list[str] | None | Unset): required_metric_ids (list[str] | None | Unset): - roll_up_strategy (None | RollUpStrategy | Unset): - roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset): + roll_up_strategy (None | RollUpStrategy | str | Unset): + roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset): prompt (None | str | Unset): lora_task_id (int | None | Unset): lora_weights_path (None | str | Unset): - luna_input_type (LunaInputTypeEnum | None | Unset): - luna_output_type (LunaOutputTypeEnum | None | Unset): + luna_input_type (LunaInputTypeEnum | None | str | Unset): + luna_output_type (LunaOutputTypeEnum | None | str | Unset): class_name_to_vocab_ix (CustomizedChunkAttributionUtilizationGPTScorerClassNameToVocabIxType0 | CustomizedChunkAttributionUtilizationGPTScorerClassNameToVocabIxType1 | None | Unset): scorer_path_name (None | str | Unset): @@ -98,7 +98,7 @@ class CustomizedChunkAttributionUtilizationGPTScorer: aggregates: CustomizedChunkAttributionUtilizationGPTScorerAggregatesType0 | None | Unset = UNSET aggregate_keys: list[str] | Unset = UNSET extra: CustomizedChunkAttributionUtilizationGPTScorerExtraType0 | None | Unset = UNSET - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET metric_name: None | str | Unset = UNSET description: None | str | Unset = UNSET @@ -111,21 +111,21 @@ class CustomizedChunkAttributionUtilizationGPTScorer: scorer_version_id: None | str | Unset = UNSET user_code: None | str | Unset = UNSET can_copy_to_llm: bool | None | Unset = UNSET - scoreable_node_types: list[NodeType] | None | Unset = UNSET + scoreable_node_types: list[NodeType | str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET requires_tools_in_llm_span: bool | Unset = False required_scorers: list[str] | None | Unset = UNSET required_metric_ids: list[str] | None | Unset = UNSET - roll_up_strategy: None | RollUpStrategy | Unset = UNSET - roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset = UNSET + roll_up_strategy: None | RollUpStrategy | str | Unset = UNSET + roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset = UNSET prompt: None | str | Unset = UNSET lora_task_id: int | None | Unset = UNSET lora_weights_path: None | str | Unset = UNSET - luna_input_type: LunaInputTypeEnum | None | Unset = UNSET - luna_output_type: LunaOutputTypeEnum | None | Unset = UNSET + luna_input_type: LunaInputTypeEnum | None | str | Unset = UNSET + luna_output_type: LunaOutputTypeEnum | None | str | Unset = UNSET class_name_to_vocab_ix: ( CustomizedChunkAttributionUtilizationGPTScorerClassNameToVocabIxType0 | CustomizedChunkAttributionUtilizationGPTScorerClassNameToVocabIxType1 @@ -201,7 +201,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.sub_scorers, Unset): sub_scorers = [] for sub_scorers_item_data in self.sub_scorers: - sub_scorers_item = sub_scorers_item_data.value + sub_scorers_item: str + if isinstance(sub_scorers_item_data, ScorerName): + sub_scorers_item = sub_scorers_item_data.value + else: + sub_scorers_item = sub_scorers_item_data sub_scorers.append(sub_scorers_item) filters: list[dict[str, Any]] | None | Unset @@ -289,7 +293,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.scoreable_node_types, list): scoreable_node_types = [] for scoreable_node_types_type_0_item_data in self.scoreable_node_types: - scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + scoreable_node_types_type_0_item: str + if isinstance(scoreable_node_types_type_0_item_data, NodeType): + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + else: + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data scoreable_node_types.append(scoreable_node_types_type_0_item) else: @@ -323,7 +331,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -363,7 +375,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.roll_up_methods, list): roll_up_methods = [] for roll_up_methods_type_0_item_data in self.roll_up_methods: - roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + roll_up_methods_type_0_item: str + if isinstance(roll_up_methods_type_0_item_data, NumericRollUpMethod): + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + else: + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data roll_up_methods.append(roll_up_methods_type_0_item) elif isinstance(self.roll_up_methods, list): @@ -622,11 +638,25 @@ def _parse_extra(data: object) -> CustomizedChunkAttributionUtilizationGPTScorer extra = _parse_extra(d.pop("extra", UNSET)) _sub_scorers = d.pop("sub_scorers", UNSET) - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET if _sub_scorers is not UNSET: sub_scorers = [] for sub_scorers_item_data in _sub_scorers: - sub_scorers_item = ScorerName(sub_scorers_item_data) + + def _parse_sub_scorers_item(data: object) -> ScorerName | str: + try: + if not isinstance(data, str): + raise TypeError() + sub_scorers_item_type_0 = ScorerName(data) + + return sub_scorers_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for sub_scorers_item") + return cast(ScorerName | str, data) + + sub_scorers_item = _parse_sub_scorers_item(sub_scorers_item_data) sub_scorers.append(sub_scorers_item) @@ -766,7 +796,7 @@ def _parse_can_copy_to_llm(data: object) -> bool | None | Unset: can_copy_to_llm = _parse_can_copy_to_llm(d.pop("can_copy_to_llm", UNSET)) - def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: + def _parse_scoreable_node_types(data: object) -> list[NodeType | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -777,14 +807,30 @@ def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: scoreable_node_types_type_0 = [] _scoreable_node_types_type_0 = data for scoreable_node_types_type_0_item_data in _scoreable_node_types_type_0: - scoreable_node_types_type_0_item = NodeType(scoreable_node_types_type_0_item_data) + + def _parse_scoreable_node_types_type_0_item(data: object) -> NodeType | str: + try: + if not isinstance(data, str): + raise TypeError() + scoreable_node_types_type_0_item_type_0 = NodeType(data) + + return scoreable_node_types_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scoreable_node_types_type_0_item") + return cast(NodeType | str, data) + + scoreable_node_types_type_0_item = _parse_scoreable_node_types_type_0_item( + scoreable_node_types_type_0_item_data + ) scoreable_node_types_type_0.append(scoreable_node_types_type_0_item) return scoreable_node_types_type_0 except: # noqa: E722 pass - return cast(list[NodeType] | None | Unset, data) + return cast(list[NodeType | str] | None | Unset, data) scoreable_node_types = _parse_scoreable_node_types(d.pop("scoreable_node_types", UNSET)) @@ -797,7 +843,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -810,11 +856,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -827,11 +875,13 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -842,14 +892,30 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) @@ -889,7 +955,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: required_metric_ids = _parse_required_metric_ids(d.pop("required_metric_ids", UNSET)) - def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: + def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -902,13 +968,15 @@ def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: return roll_up_strategy_type_0 except: # noqa: E722 pass - return cast(None | RollUpStrategy | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_strategy") + return cast(None | RollUpStrategy | str | Unset, data) roll_up_strategy = _parse_roll_up_strategy(d.pop("roll_up_strategy", UNSET)) def _parse_roll_up_methods( data: object, - ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset: + ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -919,7 +987,21 @@ def _parse_roll_up_methods( roll_up_methods_type_0 = [] _roll_up_methods_type_0 = data for roll_up_methods_type_0_item_data in _roll_up_methods_type_0: - roll_up_methods_type_0_item = NumericRollUpMethod(roll_up_methods_type_0_item_data) + + def _parse_roll_up_methods_type_0_item(data: object) -> NumericRollUpMethod | str: + try: + if not isinstance(data, str): + raise TypeError() + roll_up_methods_type_0_item_type_0 = NumericRollUpMethod(data) + + return roll_up_methods_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_methods_type_0_item") + return cast(NumericRollUpMethod | str, data) + + roll_up_methods_type_0_item = _parse_roll_up_methods_type_0_item(roll_up_methods_type_0_item_data) roll_up_methods_type_0.append(roll_up_methods_type_0_item) @@ -939,7 +1021,7 @@ def _parse_roll_up_methods( return roll_up_methods_type_1 except: # noqa: E722 pass - return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset, data) + return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset, data) roll_up_methods = _parse_roll_up_methods(d.pop("roll_up_methods", UNSET)) @@ -970,7 +1052,7 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: lora_weights_path = _parse_lora_weights_path(d.pop("lora_weights_path", UNSET)) - def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: + def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -983,11 +1065,13 @@ def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: return luna_input_type_type_0 except: # noqa: E722 pass - return cast(LunaInputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_input_type") + return cast(LunaInputTypeEnum | None | str | Unset, data) luna_input_type = _parse_luna_input_type(d.pop("luna_input_type", UNSET)) - def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: + def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -1000,7 +1084,9 @@ def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: return luna_output_type_type_0 except: # noqa: E722 pass - return cast(LunaOutputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_output_type") + return cast(LunaOutputTypeEnum | None | str | Unset, data) luna_output_type = _parse_luna_output_type(d.pop("luna_output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/customized_completeness_gpt_scorer.py b/src/splunk_ao/resources/models/customized_completeness_gpt_scorer.py index 5de849f7..8c4db051 100644 --- a/src/splunk_ao/resources/models/customized_completeness_gpt_scorer.py +++ b/src/splunk_ao/resources/models/customized_completeness_gpt_scorer.py @@ -51,7 +51,7 @@ class CustomizedCompletenessGPTScorer: aggregates (CustomizedCompletenessGPTScorerAggregatesType0 | None | Unset): aggregate_keys (list[str] | Unset): extra (CustomizedCompletenessGPTScorerExtraType0 | None | Unset): - sub_scorers (list[ScorerName] | Unset): + sub_scorers (list[ScorerName | str] | Unset): filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): metric_name (None | str | Unset): description (None | str | Unset): @@ -64,21 +64,21 @@ class CustomizedCompletenessGPTScorer: scorer_version_id (None | str | Unset): user_code (None | str | Unset): can_copy_to_llm (bool | None | Unset): - scoreable_node_types (list[NodeType] | None | Unset): + scoreable_node_types (list[NodeType | str] | None | Unset): cot_enabled (bool | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): requires_tools_in_llm_span (bool | Unset): Default: False. required_scorers (list[str] | None | Unset): required_metric_ids (list[str] | None | Unset): - roll_up_strategy (None | RollUpStrategy | Unset): - roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset): + roll_up_strategy (None | RollUpStrategy | str | Unset): + roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset): prompt (None | str | Unset): lora_task_id (int | None | Unset): lora_weights_path (None | str | Unset): - luna_input_type (LunaInputTypeEnum | None | Unset): - luna_output_type (LunaOutputTypeEnum | None | Unset): + luna_input_type (LunaInputTypeEnum | None | str | Unset): + luna_output_type (LunaOutputTypeEnum | None | str | Unset): class_name_to_vocab_ix (CustomizedCompletenessGPTScorerClassNameToVocabIxType0 | CustomizedCompletenessGPTScorerClassNameToVocabIxType1 | None | Unset): scorer_path_name (None | str | Unset): @@ -93,7 +93,7 @@ class CustomizedCompletenessGPTScorer: aggregates: CustomizedCompletenessGPTScorerAggregatesType0 | None | Unset = UNSET aggregate_keys: list[str] | Unset = UNSET extra: CustomizedCompletenessGPTScorerExtraType0 | None | Unset = UNSET - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET metric_name: None | str | Unset = UNSET description: None | str | Unset = UNSET @@ -106,21 +106,21 @@ class CustomizedCompletenessGPTScorer: scorer_version_id: None | str | Unset = UNSET user_code: None | str | Unset = UNSET can_copy_to_llm: bool | None | Unset = UNSET - scoreable_node_types: list[NodeType] | None | Unset = UNSET + scoreable_node_types: list[NodeType | str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET requires_tools_in_llm_span: bool | Unset = False required_scorers: list[str] | None | Unset = UNSET required_metric_ids: list[str] | None | Unset = UNSET - roll_up_strategy: None | RollUpStrategy | Unset = UNSET - roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset = UNSET + roll_up_strategy: None | RollUpStrategy | str | Unset = UNSET + roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset = UNSET prompt: None | str | Unset = UNSET lora_task_id: int | None | Unset = UNSET lora_weights_path: None | str | Unset = UNSET - luna_input_type: LunaInputTypeEnum | None | Unset = UNSET - luna_output_type: LunaOutputTypeEnum | None | Unset = UNSET + luna_input_type: LunaInputTypeEnum | None | str | Unset = UNSET + luna_output_type: LunaOutputTypeEnum | None | str | Unset = UNSET class_name_to_vocab_ix: ( CustomizedCompletenessGPTScorerClassNameToVocabIxType0 | CustomizedCompletenessGPTScorerClassNameToVocabIxType1 @@ -194,7 +194,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.sub_scorers, Unset): sub_scorers = [] for sub_scorers_item_data in self.sub_scorers: - sub_scorers_item = sub_scorers_item_data.value + sub_scorers_item: str + if isinstance(sub_scorers_item_data, ScorerName): + sub_scorers_item = sub_scorers_item_data.value + else: + sub_scorers_item = sub_scorers_item_data sub_scorers.append(sub_scorers_item) filters: list[dict[str, Any]] | None | Unset @@ -282,7 +286,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.scoreable_node_types, list): scoreable_node_types = [] for scoreable_node_types_type_0_item_data in self.scoreable_node_types: - scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + scoreable_node_types_type_0_item: str + if isinstance(scoreable_node_types_type_0_item_data, NodeType): + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + else: + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data scoreable_node_types.append(scoreable_node_types_type_0_item) else: @@ -316,7 +324,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -356,7 +368,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.roll_up_methods, list): roll_up_methods = [] for roll_up_methods_type_0_item_data in self.roll_up_methods: - roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + roll_up_methods_type_0_item: str + if isinstance(roll_up_methods_type_0_item_data, NumericRollUpMethod): + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + else: + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data roll_up_methods.append(roll_up_methods_type_0_item) elif isinstance(self.roll_up_methods, list): @@ -603,11 +619,25 @@ def _parse_extra(data: object) -> CustomizedCompletenessGPTScorerExtraType0 | No extra = _parse_extra(d.pop("extra", UNSET)) _sub_scorers = d.pop("sub_scorers", UNSET) - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET if _sub_scorers is not UNSET: sub_scorers = [] for sub_scorers_item_data in _sub_scorers: - sub_scorers_item = ScorerName(sub_scorers_item_data) + + def _parse_sub_scorers_item(data: object) -> ScorerName | str: + try: + if not isinstance(data, str): + raise TypeError() + sub_scorers_item_type_0 = ScorerName(data) + + return sub_scorers_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for sub_scorers_item") + return cast(ScorerName | str, data) + + sub_scorers_item = _parse_sub_scorers_item(sub_scorers_item_data) sub_scorers.append(sub_scorers_item) @@ -747,7 +777,7 @@ def _parse_can_copy_to_llm(data: object) -> bool | None | Unset: can_copy_to_llm = _parse_can_copy_to_llm(d.pop("can_copy_to_llm", UNSET)) - def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: + def _parse_scoreable_node_types(data: object) -> list[NodeType | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -758,14 +788,30 @@ def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: scoreable_node_types_type_0 = [] _scoreable_node_types_type_0 = data for scoreable_node_types_type_0_item_data in _scoreable_node_types_type_0: - scoreable_node_types_type_0_item = NodeType(scoreable_node_types_type_0_item_data) + + def _parse_scoreable_node_types_type_0_item(data: object) -> NodeType | str: + try: + if not isinstance(data, str): + raise TypeError() + scoreable_node_types_type_0_item_type_0 = NodeType(data) + + return scoreable_node_types_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scoreable_node_types_type_0_item") + return cast(NodeType | str, data) + + scoreable_node_types_type_0_item = _parse_scoreable_node_types_type_0_item( + scoreable_node_types_type_0_item_data + ) scoreable_node_types_type_0.append(scoreable_node_types_type_0_item) return scoreable_node_types_type_0 except: # noqa: E722 pass - return cast(list[NodeType] | None | Unset, data) + return cast(list[NodeType | str] | None | Unset, data) scoreable_node_types = _parse_scoreable_node_types(d.pop("scoreable_node_types", UNSET)) @@ -778,7 +824,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -791,11 +837,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -808,11 +856,13 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -823,14 +873,30 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) @@ -870,7 +936,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: required_metric_ids = _parse_required_metric_ids(d.pop("required_metric_ids", UNSET)) - def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: + def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -883,13 +949,15 @@ def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: return roll_up_strategy_type_0 except: # noqa: E722 pass - return cast(None | RollUpStrategy | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_strategy") + return cast(None | RollUpStrategy | str | Unset, data) roll_up_strategy = _parse_roll_up_strategy(d.pop("roll_up_strategy", UNSET)) def _parse_roll_up_methods( data: object, - ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset: + ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -900,7 +968,21 @@ def _parse_roll_up_methods( roll_up_methods_type_0 = [] _roll_up_methods_type_0 = data for roll_up_methods_type_0_item_data in _roll_up_methods_type_0: - roll_up_methods_type_0_item = NumericRollUpMethod(roll_up_methods_type_0_item_data) + + def _parse_roll_up_methods_type_0_item(data: object) -> NumericRollUpMethod | str: + try: + if not isinstance(data, str): + raise TypeError() + roll_up_methods_type_0_item_type_0 = NumericRollUpMethod(data) + + return roll_up_methods_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_methods_type_0_item") + return cast(NumericRollUpMethod | str, data) + + roll_up_methods_type_0_item = _parse_roll_up_methods_type_0_item(roll_up_methods_type_0_item_data) roll_up_methods_type_0.append(roll_up_methods_type_0_item) @@ -920,7 +1002,7 @@ def _parse_roll_up_methods( return roll_up_methods_type_1 except: # noqa: E722 pass - return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset, data) + return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset, data) roll_up_methods = _parse_roll_up_methods(d.pop("roll_up_methods", UNSET)) @@ -951,7 +1033,7 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: lora_weights_path = _parse_lora_weights_path(d.pop("lora_weights_path", UNSET)) - def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: + def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -964,11 +1046,13 @@ def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: return luna_input_type_type_0 except: # noqa: E722 pass - return cast(LunaInputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_input_type") + return cast(LunaInputTypeEnum | None | str | Unset, data) luna_input_type = _parse_luna_input_type(d.pop("luna_input_type", UNSET)) - def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: + def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -981,7 +1065,9 @@ def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: return luna_output_type_type_0 except: # noqa: E722 pass - return cast(LunaOutputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_output_type") + return cast(LunaOutputTypeEnum | None | str | Unset, data) luna_output_type = _parse_luna_output_type(d.pop("luna_output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/customized_factuality_gpt_scorer.py b/src/splunk_ao/resources/models/customized_factuality_gpt_scorer.py index ad64b092..0e73c15f 100644 --- a/src/splunk_ao/resources/models/customized_factuality_gpt_scorer.py +++ b/src/splunk_ao/resources/models/customized_factuality_gpt_scorer.py @@ -49,7 +49,7 @@ class CustomizedFactualityGPTScorer: aggregates (CustomizedFactualityGPTScorerAggregatesType0 | None | Unset): aggregate_keys (list[str] | Unset): extra (CustomizedFactualityGPTScorerExtraType0 | None | Unset): - sub_scorers (list[ScorerName] | Unset): + sub_scorers (list[ScorerName | str] | Unset): filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): metric_name (None | str | Unset): description (None | str | Unset): @@ -62,21 +62,21 @@ class CustomizedFactualityGPTScorer: scorer_version_id (None | str | Unset): user_code (None | str | Unset): can_copy_to_llm (bool | None | Unset): - scoreable_node_types (list[NodeType] | None | Unset): + scoreable_node_types (list[NodeType | str] | None | Unset): cot_enabled (bool | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): requires_tools_in_llm_span (bool | Unset): Default: False. required_scorers (list[str] | None | Unset): required_metric_ids (list[str] | None | Unset): - roll_up_strategy (None | RollUpStrategy | Unset): - roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset): + roll_up_strategy (None | RollUpStrategy | str | Unset): + roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset): prompt (None | str | Unset): lora_task_id (int | None | Unset): lora_weights_path (None | str | Unset): - luna_input_type (LunaInputTypeEnum | None | Unset): - luna_output_type (LunaOutputTypeEnum | None | Unset): + luna_input_type (LunaInputTypeEnum | None | str | Unset): + luna_output_type (LunaOutputTypeEnum | None | str | Unset): class_name_to_vocab_ix (CustomizedFactualityGPTScorerClassNameToVocabIxType0 | CustomizedFactualityGPTScorerClassNameToVocabIxType1 | None | Unset): scorer_path_name (None | str | Unset): @@ -92,7 +92,7 @@ class CustomizedFactualityGPTScorer: aggregates: CustomizedFactualityGPTScorerAggregatesType0 | None | Unset = UNSET aggregate_keys: list[str] | Unset = UNSET extra: CustomizedFactualityGPTScorerExtraType0 | None | Unset = UNSET - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET metric_name: None | str | Unset = UNSET description: None | str | Unset = UNSET @@ -105,21 +105,21 @@ class CustomizedFactualityGPTScorer: scorer_version_id: None | str | Unset = UNSET user_code: None | str | Unset = UNSET can_copy_to_llm: bool | None | Unset = UNSET - scoreable_node_types: list[NodeType] | None | Unset = UNSET + scoreable_node_types: list[NodeType | str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET requires_tools_in_llm_span: bool | Unset = False required_scorers: list[str] | None | Unset = UNSET required_metric_ids: list[str] | None | Unset = UNSET - roll_up_strategy: None | RollUpStrategy | Unset = UNSET - roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset = UNSET + roll_up_strategy: None | RollUpStrategy | str | Unset = UNSET + roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset = UNSET prompt: None | str | Unset = UNSET lora_task_id: int | None | Unset = UNSET lora_weights_path: None | str | Unset = UNSET - luna_input_type: LunaInputTypeEnum | None | Unset = UNSET - luna_output_type: LunaOutputTypeEnum | None | Unset = UNSET + luna_input_type: LunaInputTypeEnum | None | str | Unset = UNSET + luna_output_type: LunaOutputTypeEnum | None | str | Unset = UNSET class_name_to_vocab_ix: ( CustomizedFactualityGPTScorerClassNameToVocabIxType0 | CustomizedFactualityGPTScorerClassNameToVocabIxType1 @@ -194,7 +194,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.sub_scorers, Unset): sub_scorers = [] for sub_scorers_item_data in self.sub_scorers: - sub_scorers_item = sub_scorers_item_data.value + sub_scorers_item: str + if isinstance(sub_scorers_item_data, ScorerName): + sub_scorers_item = sub_scorers_item_data.value + else: + sub_scorers_item = sub_scorers_item_data sub_scorers.append(sub_scorers_item) filters: list[dict[str, Any]] | None | Unset @@ -282,7 +286,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.scoreable_node_types, list): scoreable_node_types = [] for scoreable_node_types_type_0_item_data in self.scoreable_node_types: - scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + scoreable_node_types_type_0_item: str + if isinstance(scoreable_node_types_type_0_item_data, NodeType): + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + else: + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data scoreable_node_types.append(scoreable_node_types_type_0_item) else: @@ -316,7 +324,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -356,7 +368,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.roll_up_methods, list): roll_up_methods = [] for roll_up_methods_type_0_item_data in self.roll_up_methods: - roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + roll_up_methods_type_0_item: str + if isinstance(roll_up_methods_type_0_item_data, NumericRollUpMethod): + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + else: + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data roll_up_methods.append(roll_up_methods_type_0_item) elif isinstance(self.roll_up_methods, list): @@ -607,11 +623,25 @@ def _parse_extra(data: object) -> CustomizedFactualityGPTScorerExtraType0 | None extra = _parse_extra(d.pop("extra", UNSET)) _sub_scorers = d.pop("sub_scorers", UNSET) - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET if _sub_scorers is not UNSET: sub_scorers = [] for sub_scorers_item_data in _sub_scorers: - sub_scorers_item = ScorerName(sub_scorers_item_data) + + def _parse_sub_scorers_item(data: object) -> ScorerName | str: + try: + if not isinstance(data, str): + raise TypeError() + sub_scorers_item_type_0 = ScorerName(data) + + return sub_scorers_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for sub_scorers_item") + return cast(ScorerName | str, data) + + sub_scorers_item = _parse_sub_scorers_item(sub_scorers_item_data) sub_scorers.append(sub_scorers_item) @@ -751,7 +781,7 @@ def _parse_can_copy_to_llm(data: object) -> bool | None | Unset: can_copy_to_llm = _parse_can_copy_to_llm(d.pop("can_copy_to_llm", UNSET)) - def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: + def _parse_scoreable_node_types(data: object) -> list[NodeType | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -762,14 +792,30 @@ def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: scoreable_node_types_type_0 = [] _scoreable_node_types_type_0 = data for scoreable_node_types_type_0_item_data in _scoreable_node_types_type_0: - scoreable_node_types_type_0_item = NodeType(scoreable_node_types_type_0_item_data) + + def _parse_scoreable_node_types_type_0_item(data: object) -> NodeType | str: + try: + if not isinstance(data, str): + raise TypeError() + scoreable_node_types_type_0_item_type_0 = NodeType(data) + + return scoreable_node_types_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scoreable_node_types_type_0_item") + return cast(NodeType | str, data) + + scoreable_node_types_type_0_item = _parse_scoreable_node_types_type_0_item( + scoreable_node_types_type_0_item_data + ) scoreable_node_types_type_0.append(scoreable_node_types_type_0_item) return scoreable_node_types_type_0 except: # noqa: E722 pass - return cast(list[NodeType] | None | Unset, data) + return cast(list[NodeType | str] | None | Unset, data) scoreable_node_types = _parse_scoreable_node_types(d.pop("scoreable_node_types", UNSET)) @@ -782,7 +828,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -795,11 +841,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -812,11 +860,13 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -827,14 +877,30 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) @@ -874,7 +940,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: required_metric_ids = _parse_required_metric_ids(d.pop("required_metric_ids", UNSET)) - def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: + def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -887,13 +953,15 @@ def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: return roll_up_strategy_type_0 except: # noqa: E722 pass - return cast(None | RollUpStrategy | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_strategy") + return cast(None | RollUpStrategy | str | Unset, data) roll_up_strategy = _parse_roll_up_strategy(d.pop("roll_up_strategy", UNSET)) def _parse_roll_up_methods( data: object, - ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset: + ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -904,7 +972,21 @@ def _parse_roll_up_methods( roll_up_methods_type_0 = [] _roll_up_methods_type_0 = data for roll_up_methods_type_0_item_data in _roll_up_methods_type_0: - roll_up_methods_type_0_item = NumericRollUpMethod(roll_up_methods_type_0_item_data) + + def _parse_roll_up_methods_type_0_item(data: object) -> NumericRollUpMethod | str: + try: + if not isinstance(data, str): + raise TypeError() + roll_up_methods_type_0_item_type_0 = NumericRollUpMethod(data) + + return roll_up_methods_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_methods_type_0_item") + return cast(NumericRollUpMethod | str, data) + + roll_up_methods_type_0_item = _parse_roll_up_methods_type_0_item(roll_up_methods_type_0_item_data) roll_up_methods_type_0.append(roll_up_methods_type_0_item) @@ -924,7 +1006,7 @@ def _parse_roll_up_methods( return roll_up_methods_type_1 except: # noqa: E722 pass - return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset, data) + return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset, data) roll_up_methods = _parse_roll_up_methods(d.pop("roll_up_methods", UNSET)) @@ -955,7 +1037,7 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: lora_weights_path = _parse_lora_weights_path(d.pop("lora_weights_path", UNSET)) - def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: + def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -968,11 +1050,13 @@ def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: return luna_input_type_type_0 except: # noqa: E722 pass - return cast(LunaInputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_input_type") + return cast(LunaInputTypeEnum | None | str | Unset, data) luna_input_type = _parse_luna_input_type(d.pop("luna_input_type", UNSET)) - def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: + def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -985,7 +1069,9 @@ def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: return luna_output_type_type_0 except: # noqa: E722 pass - return cast(LunaOutputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_output_type") + return cast(LunaOutputTypeEnum | None | str | Unset, data) luna_output_type = _parse_luna_output_type(d.pop("luna_output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/customized_ground_truth_adherence_gpt_scorer.py b/src/splunk_ao/resources/models/customized_ground_truth_adherence_gpt_scorer.py index fffb387e..a0f48019 100644 --- a/src/splunk_ao/resources/models/customized_ground_truth_adherence_gpt_scorer.py +++ b/src/splunk_ao/resources/models/customized_ground_truth_adherence_gpt_scorer.py @@ -54,7 +54,7 @@ class CustomizedGroundTruthAdherenceGPTScorer: aggregates (CustomizedGroundTruthAdherenceGPTScorerAggregatesType0 | None | Unset): aggregate_keys (list[str] | Unset): extra (CustomizedGroundTruthAdherenceGPTScorerExtraType0 | None | Unset): - sub_scorers (list[ScorerName] | Unset): + sub_scorers (list[ScorerName | str] | Unset): filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): metric_name (None | str | Unset): description (None | str | Unset): @@ -67,21 +67,21 @@ class CustomizedGroundTruthAdherenceGPTScorer: scorer_version_id (None | str | Unset): user_code (None | str | Unset): can_copy_to_llm (bool | None | Unset): - scoreable_node_types (list[NodeType] | None | Unset): + scoreable_node_types (list[NodeType | str] | None | Unset): cot_enabled (bool | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): requires_tools_in_llm_span (bool | Unset): Default: False. required_scorers (list[str] | None | Unset): required_metric_ids (list[str] | None | Unset): - roll_up_strategy (None | RollUpStrategy | Unset): - roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset): + roll_up_strategy (None | RollUpStrategy | str | Unset): + roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset): prompt (None | str | Unset): lora_task_id (int | None | Unset): lora_weights_path (None | str | Unset): - luna_input_type (LunaInputTypeEnum | None | Unset): - luna_output_type (LunaOutputTypeEnum | None | Unset): + luna_input_type (LunaInputTypeEnum | None | str | Unset): + luna_output_type (LunaOutputTypeEnum | None | str | Unset): class_name_to_vocab_ix (CustomizedGroundTruthAdherenceGPTScorerClassNameToVocabIxType0 | CustomizedGroundTruthAdherenceGPTScorerClassNameToVocabIxType1 | None | Unset): scorer_path_name (None | str | Unset): @@ -96,7 +96,7 @@ class CustomizedGroundTruthAdherenceGPTScorer: aggregates: CustomizedGroundTruthAdherenceGPTScorerAggregatesType0 | None | Unset = UNSET aggregate_keys: list[str] | Unset = UNSET extra: CustomizedGroundTruthAdherenceGPTScorerExtraType0 | None | Unset = UNSET - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET metric_name: None | str | Unset = UNSET description: None | str | Unset = UNSET @@ -109,21 +109,21 @@ class CustomizedGroundTruthAdherenceGPTScorer: scorer_version_id: None | str | Unset = UNSET user_code: None | str | Unset = UNSET can_copy_to_llm: bool | None | Unset = UNSET - scoreable_node_types: list[NodeType] | None | Unset = UNSET + scoreable_node_types: list[NodeType | str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET requires_tools_in_llm_span: bool | Unset = False required_scorers: list[str] | None | Unset = UNSET required_metric_ids: list[str] | None | Unset = UNSET - roll_up_strategy: None | RollUpStrategy | Unset = UNSET - roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset = UNSET + roll_up_strategy: None | RollUpStrategy | str | Unset = UNSET + roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset = UNSET prompt: None | str | Unset = UNSET lora_task_id: int | None | Unset = UNSET lora_weights_path: None | str | Unset = UNSET - luna_input_type: LunaInputTypeEnum | None | Unset = UNSET - luna_output_type: LunaOutputTypeEnum | None | Unset = UNSET + luna_input_type: LunaInputTypeEnum | None | str | Unset = UNSET + luna_output_type: LunaOutputTypeEnum | None | str | Unset = UNSET class_name_to_vocab_ix: ( CustomizedGroundTruthAdherenceGPTScorerClassNameToVocabIxType0 | CustomizedGroundTruthAdherenceGPTScorerClassNameToVocabIxType1 @@ -199,7 +199,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.sub_scorers, Unset): sub_scorers = [] for sub_scorers_item_data in self.sub_scorers: - sub_scorers_item = sub_scorers_item_data.value + sub_scorers_item: str + if isinstance(sub_scorers_item_data, ScorerName): + sub_scorers_item = sub_scorers_item_data.value + else: + sub_scorers_item = sub_scorers_item_data sub_scorers.append(sub_scorers_item) filters: list[dict[str, Any]] | None | Unset @@ -287,7 +291,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.scoreable_node_types, list): scoreable_node_types = [] for scoreable_node_types_type_0_item_data in self.scoreable_node_types: - scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + scoreable_node_types_type_0_item: str + if isinstance(scoreable_node_types_type_0_item_data, NodeType): + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + else: + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data scoreable_node_types.append(scoreable_node_types_type_0_item) else: @@ -321,7 +329,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -361,7 +373,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.roll_up_methods, list): roll_up_methods = [] for roll_up_methods_type_0_item_data in self.roll_up_methods: - roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + roll_up_methods_type_0_item: str + if isinstance(roll_up_methods_type_0_item_data, NumericRollUpMethod): + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + else: + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data roll_up_methods.append(roll_up_methods_type_0_item) elif isinstance(self.roll_up_methods, list): @@ -610,11 +626,25 @@ def _parse_extra(data: object) -> CustomizedGroundTruthAdherenceGPTScorerExtraTy extra = _parse_extra(d.pop("extra", UNSET)) _sub_scorers = d.pop("sub_scorers", UNSET) - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET if _sub_scorers is not UNSET: sub_scorers = [] for sub_scorers_item_data in _sub_scorers: - sub_scorers_item = ScorerName(sub_scorers_item_data) + + def _parse_sub_scorers_item(data: object) -> ScorerName | str: + try: + if not isinstance(data, str): + raise TypeError() + sub_scorers_item_type_0 = ScorerName(data) + + return sub_scorers_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for sub_scorers_item") + return cast(ScorerName | str, data) + + sub_scorers_item = _parse_sub_scorers_item(sub_scorers_item_data) sub_scorers.append(sub_scorers_item) @@ -754,7 +784,7 @@ def _parse_can_copy_to_llm(data: object) -> bool | None | Unset: can_copy_to_llm = _parse_can_copy_to_llm(d.pop("can_copy_to_llm", UNSET)) - def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: + def _parse_scoreable_node_types(data: object) -> list[NodeType | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -765,14 +795,30 @@ def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: scoreable_node_types_type_0 = [] _scoreable_node_types_type_0 = data for scoreable_node_types_type_0_item_data in _scoreable_node_types_type_0: - scoreable_node_types_type_0_item = NodeType(scoreable_node_types_type_0_item_data) + + def _parse_scoreable_node_types_type_0_item(data: object) -> NodeType | str: + try: + if not isinstance(data, str): + raise TypeError() + scoreable_node_types_type_0_item_type_0 = NodeType(data) + + return scoreable_node_types_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scoreable_node_types_type_0_item") + return cast(NodeType | str, data) + + scoreable_node_types_type_0_item = _parse_scoreable_node_types_type_0_item( + scoreable_node_types_type_0_item_data + ) scoreable_node_types_type_0.append(scoreable_node_types_type_0_item) return scoreable_node_types_type_0 except: # noqa: E722 pass - return cast(list[NodeType] | None | Unset, data) + return cast(list[NodeType | str] | None | Unset, data) scoreable_node_types = _parse_scoreable_node_types(d.pop("scoreable_node_types", UNSET)) @@ -785,7 +831,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -798,11 +844,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -815,11 +863,13 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -830,14 +880,30 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) @@ -877,7 +943,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: required_metric_ids = _parse_required_metric_ids(d.pop("required_metric_ids", UNSET)) - def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: + def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -890,13 +956,15 @@ def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: return roll_up_strategy_type_0 except: # noqa: E722 pass - return cast(None | RollUpStrategy | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_strategy") + return cast(None | RollUpStrategy | str | Unset, data) roll_up_strategy = _parse_roll_up_strategy(d.pop("roll_up_strategy", UNSET)) def _parse_roll_up_methods( data: object, - ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset: + ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -907,7 +975,21 @@ def _parse_roll_up_methods( roll_up_methods_type_0 = [] _roll_up_methods_type_0 = data for roll_up_methods_type_0_item_data in _roll_up_methods_type_0: - roll_up_methods_type_0_item = NumericRollUpMethod(roll_up_methods_type_0_item_data) + + def _parse_roll_up_methods_type_0_item(data: object) -> NumericRollUpMethod | str: + try: + if not isinstance(data, str): + raise TypeError() + roll_up_methods_type_0_item_type_0 = NumericRollUpMethod(data) + + return roll_up_methods_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_methods_type_0_item") + return cast(NumericRollUpMethod | str, data) + + roll_up_methods_type_0_item = _parse_roll_up_methods_type_0_item(roll_up_methods_type_0_item_data) roll_up_methods_type_0.append(roll_up_methods_type_0_item) @@ -927,7 +1009,7 @@ def _parse_roll_up_methods( return roll_up_methods_type_1 except: # noqa: E722 pass - return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset, data) + return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset, data) roll_up_methods = _parse_roll_up_methods(d.pop("roll_up_methods", UNSET)) @@ -958,7 +1040,7 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: lora_weights_path = _parse_lora_weights_path(d.pop("lora_weights_path", UNSET)) - def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: + def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -971,11 +1053,13 @@ def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: return luna_input_type_type_0 except: # noqa: E722 pass - return cast(LunaInputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_input_type") + return cast(LunaInputTypeEnum | None | str | Unset, data) luna_input_type = _parse_luna_input_type(d.pop("luna_input_type", UNSET)) - def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: + def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -988,7 +1072,9 @@ def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: return luna_output_type_type_0 except: # noqa: E722 pass - return cast(LunaOutputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_output_type") + return cast(LunaOutputTypeEnum | None | str | Unset, data) luna_output_type = _parse_luna_output_type(d.pop("luna_output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/customized_groundedness_gpt_scorer.py b/src/splunk_ao/resources/models/customized_groundedness_gpt_scorer.py index f7926216..3569c631 100644 --- a/src/splunk_ao/resources/models/customized_groundedness_gpt_scorer.py +++ b/src/splunk_ao/resources/models/customized_groundedness_gpt_scorer.py @@ -51,7 +51,7 @@ class CustomizedGroundednessGPTScorer: aggregates (CustomizedGroundednessGPTScorerAggregatesType0 | None | Unset): aggregate_keys (list[str] | Unset): extra (CustomizedGroundednessGPTScorerExtraType0 | None | Unset): - sub_scorers (list[ScorerName] | Unset): + sub_scorers (list[ScorerName | str] | Unset): filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): metric_name (None | str | Unset): description (None | str | Unset): @@ -65,21 +65,21 @@ class CustomizedGroundednessGPTScorer: scorer_version_id (None | str | Unset): user_code (None | str | Unset): can_copy_to_llm (bool | None | Unset): - scoreable_node_types (list[NodeType] | None | Unset): + scoreable_node_types (list[NodeType | str] | None | Unset): cot_enabled (bool | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): requires_tools_in_llm_span (bool | Unset): Default: False. required_scorers (list[str] | None | Unset): required_metric_ids (list[str] | None | Unset): - roll_up_strategy (None | RollUpStrategy | Unset): - roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset): + roll_up_strategy (None | RollUpStrategy | str | Unset): + roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset): prompt (None | str | Unset): lora_task_id (int | None | Unset): lora_weights_path (None | str | Unset): - luna_input_type (LunaInputTypeEnum | None | Unset): - luna_output_type (LunaOutputTypeEnum | None | Unset): + luna_input_type (LunaInputTypeEnum | None | str | Unset): + luna_output_type (LunaOutputTypeEnum | None | str | Unset): class_name_to_vocab_ix (CustomizedGroundednessGPTScorerClassNameToVocabIxType0 | CustomizedGroundednessGPTScorerClassNameToVocabIxType1 | None | Unset): scorer_path_name (None | str | Unset): @@ -94,7 +94,7 @@ class CustomizedGroundednessGPTScorer: aggregates: CustomizedGroundednessGPTScorerAggregatesType0 | None | Unset = UNSET aggregate_keys: list[str] | Unset = UNSET extra: CustomizedGroundednessGPTScorerExtraType0 | None | Unset = UNSET - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET metric_name: None | str | Unset = UNSET description: None | str | Unset = UNSET @@ -107,21 +107,21 @@ class CustomizedGroundednessGPTScorer: scorer_version_id: None | str | Unset = UNSET user_code: None | str | Unset = UNSET can_copy_to_llm: bool | None | Unset = UNSET - scoreable_node_types: list[NodeType] | None | Unset = UNSET + scoreable_node_types: list[NodeType | str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET requires_tools_in_llm_span: bool | Unset = False required_scorers: list[str] | None | Unset = UNSET required_metric_ids: list[str] | None | Unset = UNSET - roll_up_strategy: None | RollUpStrategy | Unset = UNSET - roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset = UNSET + roll_up_strategy: None | RollUpStrategy | str | Unset = UNSET + roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset = UNSET prompt: None | str | Unset = UNSET lora_task_id: int | None | Unset = UNSET lora_weights_path: None | str | Unset = UNSET - luna_input_type: LunaInputTypeEnum | None | Unset = UNSET - luna_output_type: LunaOutputTypeEnum | None | Unset = UNSET + luna_input_type: LunaInputTypeEnum | None | str | Unset = UNSET + luna_output_type: LunaOutputTypeEnum | None | str | Unset = UNSET class_name_to_vocab_ix: ( CustomizedGroundednessGPTScorerClassNameToVocabIxType0 | CustomizedGroundednessGPTScorerClassNameToVocabIxType1 @@ -195,7 +195,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.sub_scorers, Unset): sub_scorers = [] for sub_scorers_item_data in self.sub_scorers: - sub_scorers_item = sub_scorers_item_data.value + sub_scorers_item: str + if isinstance(sub_scorers_item_data, ScorerName): + sub_scorers_item = sub_scorers_item_data.value + else: + sub_scorers_item = sub_scorers_item_data sub_scorers.append(sub_scorers_item) filters: list[dict[str, Any]] | None | Unset @@ -283,7 +287,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.scoreable_node_types, list): scoreable_node_types = [] for scoreable_node_types_type_0_item_data in self.scoreable_node_types: - scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + scoreable_node_types_type_0_item: str + if isinstance(scoreable_node_types_type_0_item_data, NodeType): + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + else: + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data scoreable_node_types.append(scoreable_node_types_type_0_item) else: @@ -317,7 +325,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -357,7 +369,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.roll_up_methods, list): roll_up_methods = [] for roll_up_methods_type_0_item_data in self.roll_up_methods: - roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + roll_up_methods_type_0_item: str + if isinstance(roll_up_methods_type_0_item_data, NumericRollUpMethod): + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + else: + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data roll_up_methods.append(roll_up_methods_type_0_item) elif isinstance(self.roll_up_methods, list): @@ -604,11 +620,25 @@ def _parse_extra(data: object) -> CustomizedGroundednessGPTScorerExtraType0 | No extra = _parse_extra(d.pop("extra", UNSET)) _sub_scorers = d.pop("sub_scorers", UNSET) - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET if _sub_scorers is not UNSET: sub_scorers = [] for sub_scorers_item_data in _sub_scorers: - sub_scorers_item = ScorerName(sub_scorers_item_data) + + def _parse_sub_scorers_item(data: object) -> ScorerName | str: + try: + if not isinstance(data, str): + raise TypeError() + sub_scorers_item_type_0 = ScorerName(data) + + return sub_scorers_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for sub_scorers_item") + return cast(ScorerName | str, data) + + sub_scorers_item = _parse_sub_scorers_item(sub_scorers_item_data) sub_scorers.append(sub_scorers_item) @@ -748,7 +778,7 @@ def _parse_can_copy_to_llm(data: object) -> bool | None | Unset: can_copy_to_llm = _parse_can_copy_to_llm(d.pop("can_copy_to_llm", UNSET)) - def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: + def _parse_scoreable_node_types(data: object) -> list[NodeType | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -759,14 +789,30 @@ def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: scoreable_node_types_type_0 = [] _scoreable_node_types_type_0 = data for scoreable_node_types_type_0_item_data in _scoreable_node_types_type_0: - scoreable_node_types_type_0_item = NodeType(scoreable_node_types_type_0_item_data) + + def _parse_scoreable_node_types_type_0_item(data: object) -> NodeType | str: + try: + if not isinstance(data, str): + raise TypeError() + scoreable_node_types_type_0_item_type_0 = NodeType(data) + + return scoreable_node_types_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scoreable_node_types_type_0_item") + return cast(NodeType | str, data) + + scoreable_node_types_type_0_item = _parse_scoreable_node_types_type_0_item( + scoreable_node_types_type_0_item_data + ) scoreable_node_types_type_0.append(scoreable_node_types_type_0_item) return scoreable_node_types_type_0 except: # noqa: E722 pass - return cast(list[NodeType] | None | Unset, data) + return cast(list[NodeType | str] | None | Unset, data) scoreable_node_types = _parse_scoreable_node_types(d.pop("scoreable_node_types", UNSET)) @@ -779,7 +825,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -792,11 +838,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -809,11 +857,13 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -824,14 +874,30 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) @@ -871,7 +937,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: required_metric_ids = _parse_required_metric_ids(d.pop("required_metric_ids", UNSET)) - def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: + def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -884,13 +950,15 @@ def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: return roll_up_strategy_type_0 except: # noqa: E722 pass - return cast(None | RollUpStrategy | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_strategy") + return cast(None | RollUpStrategy | str | Unset, data) roll_up_strategy = _parse_roll_up_strategy(d.pop("roll_up_strategy", UNSET)) def _parse_roll_up_methods( data: object, - ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset: + ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -901,7 +969,21 @@ def _parse_roll_up_methods( roll_up_methods_type_0 = [] _roll_up_methods_type_0 = data for roll_up_methods_type_0_item_data in _roll_up_methods_type_0: - roll_up_methods_type_0_item = NumericRollUpMethod(roll_up_methods_type_0_item_data) + + def _parse_roll_up_methods_type_0_item(data: object) -> NumericRollUpMethod | str: + try: + if not isinstance(data, str): + raise TypeError() + roll_up_methods_type_0_item_type_0 = NumericRollUpMethod(data) + + return roll_up_methods_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_methods_type_0_item") + return cast(NumericRollUpMethod | str, data) + + roll_up_methods_type_0_item = _parse_roll_up_methods_type_0_item(roll_up_methods_type_0_item_data) roll_up_methods_type_0.append(roll_up_methods_type_0_item) @@ -921,7 +1003,7 @@ def _parse_roll_up_methods( return roll_up_methods_type_1 except: # noqa: E722 pass - return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset, data) + return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset, data) roll_up_methods = _parse_roll_up_methods(d.pop("roll_up_methods", UNSET)) @@ -952,7 +1034,7 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: lora_weights_path = _parse_lora_weights_path(d.pop("lora_weights_path", UNSET)) - def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: + def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -965,11 +1047,13 @@ def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: return luna_input_type_type_0 except: # noqa: E722 pass - return cast(LunaInputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_input_type") + return cast(LunaInputTypeEnum | None | str | Unset, data) luna_input_type = _parse_luna_input_type(d.pop("luna_input_type", UNSET)) - def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: + def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -982,7 +1066,9 @@ def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: return luna_output_type_type_0 except: # noqa: E722 pass - return cast(LunaOutputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_output_type") + return cast(LunaOutputTypeEnum | None | str | Unset, data) luna_output_type = _parse_luna_output_type(d.pop("luna_output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/customized_input_sexist_gpt_scorer.py b/src/splunk_ao/resources/models/customized_input_sexist_gpt_scorer.py index 42ec0868..f0960094 100644 --- a/src/splunk_ao/resources/models/customized_input_sexist_gpt_scorer.py +++ b/src/splunk_ao/resources/models/customized_input_sexist_gpt_scorer.py @@ -51,7 +51,7 @@ class CustomizedInputSexistGPTScorer: aggregates (CustomizedInputSexistGPTScorerAggregatesType0 | None | Unset): aggregate_keys (list[str] | Unset): extra (CustomizedInputSexistGPTScorerExtraType0 | None | Unset): - sub_scorers (list[ScorerName] | Unset): + sub_scorers (list[ScorerName | str] | Unset): filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): metric_name (None | str | Unset): description (None | str | Unset): @@ -65,21 +65,21 @@ class CustomizedInputSexistGPTScorer: scorer_version_id (None | str | Unset): user_code (None | str | Unset): can_copy_to_llm (bool | None | Unset): - scoreable_node_types (list[NodeType] | None | Unset): + scoreable_node_types (list[NodeType | str] | None | Unset): cot_enabled (bool | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): requires_tools_in_llm_span (bool | Unset): Default: False. required_scorers (list[str] | None | Unset): required_metric_ids (list[str] | None | Unset): - roll_up_strategy (None | RollUpStrategy | Unset): - roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset): + roll_up_strategy (None | RollUpStrategy | str | Unset): + roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset): prompt (None | str | Unset): lora_task_id (int | None | Unset): lora_weights_path (None | str | Unset): - luna_input_type (LunaInputTypeEnum | None | Unset): - luna_output_type (LunaOutputTypeEnum | None | Unset): + luna_input_type (LunaInputTypeEnum | None | str | Unset): + luna_output_type (LunaOutputTypeEnum | None | str | Unset): class_name_to_vocab_ix (CustomizedInputSexistGPTScorerClassNameToVocabIxType0 | CustomizedInputSexistGPTScorerClassNameToVocabIxType1 | None | Unset): scorer_path_name (None | str | Unset): @@ -94,7 +94,7 @@ class CustomizedInputSexistGPTScorer: aggregates: CustomizedInputSexistGPTScorerAggregatesType0 | None | Unset = UNSET aggregate_keys: list[str] | Unset = UNSET extra: CustomizedInputSexistGPTScorerExtraType0 | None | Unset = UNSET - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET metric_name: None | str | Unset = UNSET description: None | str | Unset = UNSET @@ -107,21 +107,21 @@ class CustomizedInputSexistGPTScorer: scorer_version_id: None | str | Unset = UNSET user_code: None | str | Unset = UNSET can_copy_to_llm: bool | None | Unset = UNSET - scoreable_node_types: list[NodeType] | None | Unset = UNSET + scoreable_node_types: list[NodeType | str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET requires_tools_in_llm_span: bool | Unset = False required_scorers: list[str] | None | Unset = UNSET required_metric_ids: list[str] | None | Unset = UNSET - roll_up_strategy: None | RollUpStrategy | Unset = UNSET - roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset = UNSET + roll_up_strategy: None | RollUpStrategy | str | Unset = UNSET + roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset = UNSET prompt: None | str | Unset = UNSET lora_task_id: int | None | Unset = UNSET lora_weights_path: None | str | Unset = UNSET - luna_input_type: LunaInputTypeEnum | None | Unset = UNSET - luna_output_type: LunaOutputTypeEnum | None | Unset = UNSET + luna_input_type: LunaInputTypeEnum | None | str | Unset = UNSET + luna_output_type: LunaOutputTypeEnum | None | str | Unset = UNSET class_name_to_vocab_ix: ( CustomizedInputSexistGPTScorerClassNameToVocabIxType0 | CustomizedInputSexistGPTScorerClassNameToVocabIxType1 @@ -195,7 +195,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.sub_scorers, Unset): sub_scorers = [] for sub_scorers_item_data in self.sub_scorers: - sub_scorers_item = sub_scorers_item_data.value + sub_scorers_item: str + if isinstance(sub_scorers_item_data, ScorerName): + sub_scorers_item = sub_scorers_item_data.value + else: + sub_scorers_item = sub_scorers_item_data sub_scorers.append(sub_scorers_item) filters: list[dict[str, Any]] | None | Unset @@ -283,7 +287,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.scoreable_node_types, list): scoreable_node_types = [] for scoreable_node_types_type_0_item_data in self.scoreable_node_types: - scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + scoreable_node_types_type_0_item: str + if isinstance(scoreable_node_types_type_0_item_data, NodeType): + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + else: + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data scoreable_node_types.append(scoreable_node_types_type_0_item) else: @@ -317,7 +325,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -357,7 +369,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.roll_up_methods, list): roll_up_methods = [] for roll_up_methods_type_0_item_data in self.roll_up_methods: - roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + roll_up_methods_type_0_item: str + if isinstance(roll_up_methods_type_0_item_data, NumericRollUpMethod): + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + else: + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data roll_up_methods.append(roll_up_methods_type_0_item) elif isinstance(self.roll_up_methods, list): @@ -604,11 +620,25 @@ def _parse_extra(data: object) -> CustomizedInputSexistGPTScorerExtraType0 | Non extra = _parse_extra(d.pop("extra", UNSET)) _sub_scorers = d.pop("sub_scorers", UNSET) - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET if _sub_scorers is not UNSET: sub_scorers = [] for sub_scorers_item_data in _sub_scorers: - sub_scorers_item = ScorerName(sub_scorers_item_data) + + def _parse_sub_scorers_item(data: object) -> ScorerName | str: + try: + if not isinstance(data, str): + raise TypeError() + sub_scorers_item_type_0 = ScorerName(data) + + return sub_scorers_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for sub_scorers_item") + return cast(ScorerName | str, data) + + sub_scorers_item = _parse_sub_scorers_item(sub_scorers_item_data) sub_scorers.append(sub_scorers_item) @@ -748,7 +778,7 @@ def _parse_can_copy_to_llm(data: object) -> bool | None | Unset: can_copy_to_llm = _parse_can_copy_to_llm(d.pop("can_copy_to_llm", UNSET)) - def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: + def _parse_scoreable_node_types(data: object) -> list[NodeType | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -759,14 +789,30 @@ def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: scoreable_node_types_type_0 = [] _scoreable_node_types_type_0 = data for scoreable_node_types_type_0_item_data in _scoreable_node_types_type_0: - scoreable_node_types_type_0_item = NodeType(scoreable_node_types_type_0_item_data) + + def _parse_scoreable_node_types_type_0_item(data: object) -> NodeType | str: + try: + if not isinstance(data, str): + raise TypeError() + scoreable_node_types_type_0_item_type_0 = NodeType(data) + + return scoreable_node_types_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scoreable_node_types_type_0_item") + return cast(NodeType | str, data) + + scoreable_node_types_type_0_item = _parse_scoreable_node_types_type_0_item( + scoreable_node_types_type_0_item_data + ) scoreable_node_types_type_0.append(scoreable_node_types_type_0_item) return scoreable_node_types_type_0 except: # noqa: E722 pass - return cast(list[NodeType] | None | Unset, data) + return cast(list[NodeType | str] | None | Unset, data) scoreable_node_types = _parse_scoreable_node_types(d.pop("scoreable_node_types", UNSET)) @@ -779,7 +825,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -792,11 +838,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -809,11 +857,13 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -824,14 +874,30 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) @@ -871,7 +937,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: required_metric_ids = _parse_required_metric_ids(d.pop("required_metric_ids", UNSET)) - def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: + def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -884,13 +950,15 @@ def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: return roll_up_strategy_type_0 except: # noqa: E722 pass - return cast(None | RollUpStrategy | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_strategy") + return cast(None | RollUpStrategy | str | Unset, data) roll_up_strategy = _parse_roll_up_strategy(d.pop("roll_up_strategy", UNSET)) def _parse_roll_up_methods( data: object, - ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset: + ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -901,7 +969,21 @@ def _parse_roll_up_methods( roll_up_methods_type_0 = [] _roll_up_methods_type_0 = data for roll_up_methods_type_0_item_data in _roll_up_methods_type_0: - roll_up_methods_type_0_item = NumericRollUpMethod(roll_up_methods_type_0_item_data) + + def _parse_roll_up_methods_type_0_item(data: object) -> NumericRollUpMethod | str: + try: + if not isinstance(data, str): + raise TypeError() + roll_up_methods_type_0_item_type_0 = NumericRollUpMethod(data) + + return roll_up_methods_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_methods_type_0_item") + return cast(NumericRollUpMethod | str, data) + + roll_up_methods_type_0_item = _parse_roll_up_methods_type_0_item(roll_up_methods_type_0_item_data) roll_up_methods_type_0.append(roll_up_methods_type_0_item) @@ -921,7 +1003,7 @@ def _parse_roll_up_methods( return roll_up_methods_type_1 except: # noqa: E722 pass - return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset, data) + return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset, data) roll_up_methods = _parse_roll_up_methods(d.pop("roll_up_methods", UNSET)) @@ -952,7 +1034,7 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: lora_weights_path = _parse_lora_weights_path(d.pop("lora_weights_path", UNSET)) - def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: + def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -965,11 +1047,13 @@ def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: return luna_input_type_type_0 except: # noqa: E722 pass - return cast(LunaInputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_input_type") + return cast(LunaInputTypeEnum | None | str | Unset, data) luna_input_type = _parse_luna_input_type(d.pop("luna_input_type", UNSET)) - def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: + def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -982,7 +1066,9 @@ def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: return luna_output_type_type_0 except: # noqa: E722 pass - return cast(LunaOutputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_output_type") + return cast(LunaOutputTypeEnum | None | str | Unset, data) luna_output_type = _parse_luna_output_type(d.pop("luna_output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/customized_input_toxicity_gpt_scorer.py b/src/splunk_ao/resources/models/customized_input_toxicity_gpt_scorer.py index aa2fe232..99a99176 100644 --- a/src/splunk_ao/resources/models/customized_input_toxicity_gpt_scorer.py +++ b/src/splunk_ao/resources/models/customized_input_toxicity_gpt_scorer.py @@ -51,7 +51,7 @@ class CustomizedInputToxicityGPTScorer: aggregates (CustomizedInputToxicityGPTScorerAggregatesType0 | None | Unset): aggregate_keys (list[str] | Unset): extra (CustomizedInputToxicityGPTScorerExtraType0 | None | Unset): - sub_scorers (list[ScorerName] | Unset): + sub_scorers (list[ScorerName | str] | Unset): filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): metric_name (None | str | Unset): description (None | str | Unset): @@ -65,21 +65,21 @@ class CustomizedInputToxicityGPTScorer: scorer_version_id (None | str | Unset): user_code (None | str | Unset): can_copy_to_llm (bool | None | Unset): - scoreable_node_types (list[NodeType] | None | Unset): + scoreable_node_types (list[NodeType | str] | None | Unset): cot_enabled (bool | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): requires_tools_in_llm_span (bool | Unset): Default: False. required_scorers (list[str] | None | Unset): required_metric_ids (list[str] | None | Unset): - roll_up_strategy (None | RollUpStrategy | Unset): - roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset): + roll_up_strategy (None | RollUpStrategy | str | Unset): + roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset): prompt (None | str | Unset): lora_task_id (int | None | Unset): lora_weights_path (None | str | Unset): - luna_input_type (LunaInputTypeEnum | None | Unset): - luna_output_type (LunaOutputTypeEnum | None | Unset): + luna_input_type (LunaInputTypeEnum | None | str | Unset): + luna_output_type (LunaOutputTypeEnum | None | str | Unset): class_name_to_vocab_ix (CustomizedInputToxicityGPTScorerClassNameToVocabIxType0 | CustomizedInputToxicityGPTScorerClassNameToVocabIxType1 | None | Unset): scorer_path_name (None | str | Unset): @@ -94,7 +94,7 @@ class CustomizedInputToxicityGPTScorer: aggregates: CustomizedInputToxicityGPTScorerAggregatesType0 | None | Unset = UNSET aggregate_keys: list[str] | Unset = UNSET extra: CustomizedInputToxicityGPTScorerExtraType0 | None | Unset = UNSET - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET metric_name: None | str | Unset = UNSET description: None | str | Unset = UNSET @@ -107,21 +107,21 @@ class CustomizedInputToxicityGPTScorer: scorer_version_id: None | str | Unset = UNSET user_code: None | str | Unset = UNSET can_copy_to_llm: bool | None | Unset = UNSET - scoreable_node_types: list[NodeType] | None | Unset = UNSET + scoreable_node_types: list[NodeType | str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET requires_tools_in_llm_span: bool | Unset = False required_scorers: list[str] | None | Unset = UNSET required_metric_ids: list[str] | None | Unset = UNSET - roll_up_strategy: None | RollUpStrategy | Unset = UNSET - roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset = UNSET + roll_up_strategy: None | RollUpStrategy | str | Unset = UNSET + roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset = UNSET prompt: None | str | Unset = UNSET lora_task_id: int | None | Unset = UNSET lora_weights_path: None | str | Unset = UNSET - luna_input_type: LunaInputTypeEnum | None | Unset = UNSET - luna_output_type: LunaOutputTypeEnum | None | Unset = UNSET + luna_input_type: LunaInputTypeEnum | None | str | Unset = UNSET + luna_output_type: LunaOutputTypeEnum | None | str | Unset = UNSET class_name_to_vocab_ix: ( CustomizedInputToxicityGPTScorerClassNameToVocabIxType0 | CustomizedInputToxicityGPTScorerClassNameToVocabIxType1 @@ -197,7 +197,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.sub_scorers, Unset): sub_scorers = [] for sub_scorers_item_data in self.sub_scorers: - sub_scorers_item = sub_scorers_item_data.value + sub_scorers_item: str + if isinstance(sub_scorers_item_data, ScorerName): + sub_scorers_item = sub_scorers_item_data.value + else: + sub_scorers_item = sub_scorers_item_data sub_scorers.append(sub_scorers_item) filters: list[dict[str, Any]] | None | Unset @@ -285,7 +289,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.scoreable_node_types, list): scoreable_node_types = [] for scoreable_node_types_type_0_item_data in self.scoreable_node_types: - scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + scoreable_node_types_type_0_item: str + if isinstance(scoreable_node_types_type_0_item_data, NodeType): + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + else: + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data scoreable_node_types.append(scoreable_node_types_type_0_item) else: @@ -319,7 +327,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -359,7 +371,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.roll_up_methods, list): roll_up_methods = [] for roll_up_methods_type_0_item_data in self.roll_up_methods: - roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + roll_up_methods_type_0_item: str + if isinstance(roll_up_methods_type_0_item_data, NumericRollUpMethod): + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + else: + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data roll_up_methods.append(roll_up_methods_type_0_item) elif isinstance(self.roll_up_methods, list): @@ -608,11 +624,25 @@ def _parse_extra(data: object) -> CustomizedInputToxicityGPTScorerExtraType0 | N extra = _parse_extra(d.pop("extra", UNSET)) _sub_scorers = d.pop("sub_scorers", UNSET) - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET if _sub_scorers is not UNSET: sub_scorers = [] for sub_scorers_item_data in _sub_scorers: - sub_scorers_item = ScorerName(sub_scorers_item_data) + + def _parse_sub_scorers_item(data: object) -> ScorerName | str: + try: + if not isinstance(data, str): + raise TypeError() + sub_scorers_item_type_0 = ScorerName(data) + + return sub_scorers_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for sub_scorers_item") + return cast(ScorerName | str, data) + + sub_scorers_item = _parse_sub_scorers_item(sub_scorers_item_data) sub_scorers.append(sub_scorers_item) @@ -752,7 +782,7 @@ def _parse_can_copy_to_llm(data: object) -> bool | None | Unset: can_copy_to_llm = _parse_can_copy_to_llm(d.pop("can_copy_to_llm", UNSET)) - def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: + def _parse_scoreable_node_types(data: object) -> list[NodeType | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -763,14 +793,30 @@ def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: scoreable_node_types_type_0 = [] _scoreable_node_types_type_0 = data for scoreable_node_types_type_0_item_data in _scoreable_node_types_type_0: - scoreable_node_types_type_0_item = NodeType(scoreable_node_types_type_0_item_data) + + def _parse_scoreable_node_types_type_0_item(data: object) -> NodeType | str: + try: + if not isinstance(data, str): + raise TypeError() + scoreable_node_types_type_0_item_type_0 = NodeType(data) + + return scoreable_node_types_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scoreable_node_types_type_0_item") + return cast(NodeType | str, data) + + scoreable_node_types_type_0_item = _parse_scoreable_node_types_type_0_item( + scoreable_node_types_type_0_item_data + ) scoreable_node_types_type_0.append(scoreable_node_types_type_0_item) return scoreable_node_types_type_0 except: # noqa: E722 pass - return cast(list[NodeType] | None | Unset, data) + return cast(list[NodeType | str] | None | Unset, data) scoreable_node_types = _parse_scoreable_node_types(d.pop("scoreable_node_types", UNSET)) @@ -783,7 +829,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -796,11 +842,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -813,11 +861,13 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -828,14 +878,30 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) @@ -875,7 +941,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: required_metric_ids = _parse_required_metric_ids(d.pop("required_metric_ids", UNSET)) - def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: + def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -888,13 +954,15 @@ def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: return roll_up_strategy_type_0 except: # noqa: E722 pass - return cast(None | RollUpStrategy | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_strategy") + return cast(None | RollUpStrategy | str | Unset, data) roll_up_strategy = _parse_roll_up_strategy(d.pop("roll_up_strategy", UNSET)) def _parse_roll_up_methods( data: object, - ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset: + ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -905,7 +973,21 @@ def _parse_roll_up_methods( roll_up_methods_type_0 = [] _roll_up_methods_type_0 = data for roll_up_methods_type_0_item_data in _roll_up_methods_type_0: - roll_up_methods_type_0_item = NumericRollUpMethod(roll_up_methods_type_0_item_data) + + def _parse_roll_up_methods_type_0_item(data: object) -> NumericRollUpMethod | str: + try: + if not isinstance(data, str): + raise TypeError() + roll_up_methods_type_0_item_type_0 = NumericRollUpMethod(data) + + return roll_up_methods_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_methods_type_0_item") + return cast(NumericRollUpMethod | str, data) + + roll_up_methods_type_0_item = _parse_roll_up_methods_type_0_item(roll_up_methods_type_0_item_data) roll_up_methods_type_0.append(roll_up_methods_type_0_item) @@ -925,7 +1007,7 @@ def _parse_roll_up_methods( return roll_up_methods_type_1 except: # noqa: E722 pass - return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset, data) + return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset, data) roll_up_methods = _parse_roll_up_methods(d.pop("roll_up_methods", UNSET)) @@ -956,7 +1038,7 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: lora_weights_path = _parse_lora_weights_path(d.pop("lora_weights_path", UNSET)) - def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: + def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -969,11 +1051,13 @@ def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: return luna_input_type_type_0 except: # noqa: E722 pass - return cast(LunaInputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_input_type") + return cast(LunaInputTypeEnum | None | str | Unset, data) luna_input_type = _parse_luna_input_type(d.pop("luna_input_type", UNSET)) - def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: + def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -986,7 +1070,9 @@ def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: return luna_output_type_type_0 except: # noqa: E722 pass - return cast(LunaOutputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_output_type") + return cast(LunaOutputTypeEnum | None | str | Unset, data) luna_output_type = _parse_luna_output_type(d.pop("luna_output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/customized_instruction_adherence_gpt_scorer.py b/src/splunk_ao/resources/models/customized_instruction_adherence_gpt_scorer.py index 7446f241..eb53ecce 100644 --- a/src/splunk_ao/resources/models/customized_instruction_adherence_gpt_scorer.py +++ b/src/splunk_ao/resources/models/customized_instruction_adherence_gpt_scorer.py @@ -54,7 +54,7 @@ class CustomizedInstructionAdherenceGPTScorer: aggregates (CustomizedInstructionAdherenceGPTScorerAggregatesType0 | None | Unset): aggregate_keys (list[str] | Unset): extra (CustomizedInstructionAdherenceGPTScorerExtraType0 | None | Unset): - sub_scorers (list[ScorerName] | Unset): + sub_scorers (list[ScorerName | str] | Unset): filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): metric_name (None | str | Unset): description (None | str | Unset): @@ -67,21 +67,21 @@ class CustomizedInstructionAdherenceGPTScorer: scorer_version_id (None | str | Unset): user_code (None | str | Unset): can_copy_to_llm (bool | None | Unset): - scoreable_node_types (list[NodeType] | None | Unset): + scoreable_node_types (list[NodeType | str] | None | Unset): cot_enabled (bool | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): requires_tools_in_llm_span (bool | Unset): Default: False. required_scorers (list[str] | None | Unset): required_metric_ids (list[str] | None | Unset): - roll_up_strategy (None | RollUpStrategy | Unset): - roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset): + roll_up_strategy (None | RollUpStrategy | str | Unset): + roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset): prompt (None | str | Unset): lora_task_id (int | None | Unset): lora_weights_path (None | str | Unset): - luna_input_type (LunaInputTypeEnum | None | Unset): - luna_output_type (LunaOutputTypeEnum | None | Unset): + luna_input_type (LunaInputTypeEnum | None | str | Unset): + luna_output_type (LunaOutputTypeEnum | None | str | Unset): class_name_to_vocab_ix (CustomizedInstructionAdherenceGPTScorerClassNameToVocabIxType0 | CustomizedInstructionAdherenceGPTScorerClassNameToVocabIxType1 | None | Unset): scorer_path_name (None | str | Unset): @@ -97,7 +97,7 @@ class CustomizedInstructionAdherenceGPTScorer: aggregates: CustomizedInstructionAdherenceGPTScorerAggregatesType0 | None | Unset = UNSET aggregate_keys: list[str] | Unset = UNSET extra: CustomizedInstructionAdherenceGPTScorerExtraType0 | None | Unset = UNSET - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET metric_name: None | str | Unset = UNSET description: None | str | Unset = UNSET @@ -110,21 +110,21 @@ class CustomizedInstructionAdherenceGPTScorer: scorer_version_id: None | str | Unset = UNSET user_code: None | str | Unset = UNSET can_copy_to_llm: bool | None | Unset = UNSET - scoreable_node_types: list[NodeType] | None | Unset = UNSET + scoreable_node_types: list[NodeType | str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET requires_tools_in_llm_span: bool | Unset = False required_scorers: list[str] | None | Unset = UNSET required_metric_ids: list[str] | None | Unset = UNSET - roll_up_strategy: None | RollUpStrategy | Unset = UNSET - roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset = UNSET + roll_up_strategy: None | RollUpStrategy | str | Unset = UNSET + roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset = UNSET prompt: None | str | Unset = UNSET lora_task_id: int | None | Unset = UNSET lora_weights_path: None | str | Unset = UNSET - luna_input_type: LunaInputTypeEnum | None | Unset = UNSET - luna_output_type: LunaOutputTypeEnum | None | Unset = UNSET + luna_input_type: LunaInputTypeEnum | None | str | Unset = UNSET + luna_output_type: LunaOutputTypeEnum | None | str | Unset = UNSET class_name_to_vocab_ix: ( CustomizedInstructionAdherenceGPTScorerClassNameToVocabIxType0 | CustomizedInstructionAdherenceGPTScorerClassNameToVocabIxType1 @@ -201,7 +201,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.sub_scorers, Unset): sub_scorers = [] for sub_scorers_item_data in self.sub_scorers: - sub_scorers_item = sub_scorers_item_data.value + sub_scorers_item: str + if isinstance(sub_scorers_item_data, ScorerName): + sub_scorers_item = sub_scorers_item_data.value + else: + sub_scorers_item = sub_scorers_item_data sub_scorers.append(sub_scorers_item) filters: list[dict[str, Any]] | None | Unset @@ -289,7 +293,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.scoreable_node_types, list): scoreable_node_types = [] for scoreable_node_types_type_0_item_data in self.scoreable_node_types: - scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + scoreable_node_types_type_0_item: str + if isinstance(scoreable_node_types_type_0_item_data, NodeType): + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + else: + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data scoreable_node_types.append(scoreable_node_types_type_0_item) else: @@ -323,7 +331,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -363,7 +375,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.roll_up_methods, list): roll_up_methods = [] for roll_up_methods_type_0_item_data in self.roll_up_methods: - roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + roll_up_methods_type_0_item: str + if isinstance(roll_up_methods_type_0_item_data, NumericRollUpMethod): + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + else: + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data roll_up_methods.append(roll_up_methods_type_0_item) elif isinstance(self.roll_up_methods, list): @@ -616,11 +632,25 @@ def _parse_extra(data: object) -> CustomizedInstructionAdherenceGPTScorerExtraTy extra = _parse_extra(d.pop("extra", UNSET)) _sub_scorers = d.pop("sub_scorers", UNSET) - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET if _sub_scorers is not UNSET: sub_scorers = [] for sub_scorers_item_data in _sub_scorers: - sub_scorers_item = ScorerName(sub_scorers_item_data) + + def _parse_sub_scorers_item(data: object) -> ScorerName | str: + try: + if not isinstance(data, str): + raise TypeError() + sub_scorers_item_type_0 = ScorerName(data) + + return sub_scorers_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for sub_scorers_item") + return cast(ScorerName | str, data) + + sub_scorers_item = _parse_sub_scorers_item(sub_scorers_item_data) sub_scorers.append(sub_scorers_item) @@ -760,7 +790,7 @@ def _parse_can_copy_to_llm(data: object) -> bool | None | Unset: can_copy_to_llm = _parse_can_copy_to_llm(d.pop("can_copy_to_llm", UNSET)) - def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: + def _parse_scoreable_node_types(data: object) -> list[NodeType | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -771,14 +801,30 @@ def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: scoreable_node_types_type_0 = [] _scoreable_node_types_type_0 = data for scoreable_node_types_type_0_item_data in _scoreable_node_types_type_0: - scoreable_node_types_type_0_item = NodeType(scoreable_node_types_type_0_item_data) + + def _parse_scoreable_node_types_type_0_item(data: object) -> NodeType | str: + try: + if not isinstance(data, str): + raise TypeError() + scoreable_node_types_type_0_item_type_0 = NodeType(data) + + return scoreable_node_types_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scoreable_node_types_type_0_item") + return cast(NodeType | str, data) + + scoreable_node_types_type_0_item = _parse_scoreable_node_types_type_0_item( + scoreable_node_types_type_0_item_data + ) scoreable_node_types_type_0.append(scoreable_node_types_type_0_item) return scoreable_node_types_type_0 except: # noqa: E722 pass - return cast(list[NodeType] | None | Unset, data) + return cast(list[NodeType | str] | None | Unset, data) scoreable_node_types = _parse_scoreable_node_types(d.pop("scoreable_node_types", UNSET)) @@ -791,7 +837,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -804,11 +850,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -821,11 +869,13 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -836,14 +886,30 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) @@ -883,7 +949,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: required_metric_ids = _parse_required_metric_ids(d.pop("required_metric_ids", UNSET)) - def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: + def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -896,13 +962,15 @@ def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: return roll_up_strategy_type_0 except: # noqa: E722 pass - return cast(None | RollUpStrategy | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_strategy") + return cast(None | RollUpStrategy | str | Unset, data) roll_up_strategy = _parse_roll_up_strategy(d.pop("roll_up_strategy", UNSET)) def _parse_roll_up_methods( data: object, - ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset: + ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -913,7 +981,21 @@ def _parse_roll_up_methods( roll_up_methods_type_0 = [] _roll_up_methods_type_0 = data for roll_up_methods_type_0_item_data in _roll_up_methods_type_0: - roll_up_methods_type_0_item = NumericRollUpMethod(roll_up_methods_type_0_item_data) + + def _parse_roll_up_methods_type_0_item(data: object) -> NumericRollUpMethod | str: + try: + if not isinstance(data, str): + raise TypeError() + roll_up_methods_type_0_item_type_0 = NumericRollUpMethod(data) + + return roll_up_methods_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_methods_type_0_item") + return cast(NumericRollUpMethod | str, data) + + roll_up_methods_type_0_item = _parse_roll_up_methods_type_0_item(roll_up_methods_type_0_item_data) roll_up_methods_type_0.append(roll_up_methods_type_0_item) @@ -933,7 +1015,7 @@ def _parse_roll_up_methods( return roll_up_methods_type_1 except: # noqa: E722 pass - return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset, data) + return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset, data) roll_up_methods = _parse_roll_up_methods(d.pop("roll_up_methods", UNSET)) @@ -964,7 +1046,7 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: lora_weights_path = _parse_lora_weights_path(d.pop("lora_weights_path", UNSET)) - def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: + def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -977,11 +1059,13 @@ def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: return luna_input_type_type_0 except: # noqa: E722 pass - return cast(LunaInputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_input_type") + return cast(LunaInputTypeEnum | None | str | Unset, data) luna_input_type = _parse_luna_input_type(d.pop("luna_input_type", UNSET)) - def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: + def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -994,7 +1078,9 @@ def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: return luna_output_type_type_0 except: # noqa: E722 pass - return cast(LunaOutputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_output_type") + return cast(LunaOutputTypeEnum | None | str | Unset, data) luna_output_type = _parse_luna_output_type(d.pop("luna_output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/customized_prompt_injection_gpt_scorer.py b/src/splunk_ao/resources/models/customized_prompt_injection_gpt_scorer.py index 5fee554c..c7f1caa5 100644 --- a/src/splunk_ao/resources/models/customized_prompt_injection_gpt_scorer.py +++ b/src/splunk_ao/resources/models/customized_prompt_injection_gpt_scorer.py @@ -53,7 +53,7 @@ class CustomizedPromptInjectionGPTScorer: aggregates (CustomizedPromptInjectionGPTScorerAggregatesType0 | None | Unset): aggregate_keys (list[str] | Unset): extra (CustomizedPromptInjectionGPTScorerExtraType0 | None | Unset): - sub_scorers (list[ScorerName] | Unset): + sub_scorers (list[ScorerName | str] | Unset): filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): metric_name (None | str | Unset): description (None | str | Unset): @@ -67,21 +67,21 @@ class CustomizedPromptInjectionGPTScorer: scorer_version_id (None | str | Unset): user_code (None | str | Unset): can_copy_to_llm (bool | None | Unset): - scoreable_node_types (list[NodeType] | None | Unset): + scoreable_node_types (list[NodeType | str] | None | Unset): cot_enabled (bool | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): requires_tools_in_llm_span (bool | Unset): Default: False. required_scorers (list[str] | None | Unset): required_metric_ids (list[str] | None | Unset): - roll_up_strategy (None | RollUpStrategy | Unset): - roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset): + roll_up_strategy (None | RollUpStrategy | str | Unset): + roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset): prompt (None | str | Unset): lora_task_id (int | None | Unset): lora_weights_path (None | str | Unset): - luna_input_type (LunaInputTypeEnum | None | Unset): - luna_output_type (LunaOutputTypeEnum | None | Unset): + luna_input_type (LunaInputTypeEnum | None | str | Unset): + luna_output_type (LunaOutputTypeEnum | None | str | Unset): class_name_to_vocab_ix (CustomizedPromptInjectionGPTScorerClassNameToVocabIxType0 | CustomizedPromptInjectionGPTScorerClassNameToVocabIxType1 | None | Unset): scorer_path_name (None | str | Unset): @@ -96,7 +96,7 @@ class CustomizedPromptInjectionGPTScorer: aggregates: CustomizedPromptInjectionGPTScorerAggregatesType0 | None | Unset = UNSET aggregate_keys: list[str] | Unset = UNSET extra: CustomizedPromptInjectionGPTScorerExtraType0 | None | Unset = UNSET - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET metric_name: None | str | Unset = UNSET description: None | str | Unset = UNSET @@ -109,21 +109,21 @@ class CustomizedPromptInjectionGPTScorer: scorer_version_id: None | str | Unset = UNSET user_code: None | str | Unset = UNSET can_copy_to_llm: bool | None | Unset = UNSET - scoreable_node_types: list[NodeType] | None | Unset = UNSET + scoreable_node_types: list[NodeType | str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET requires_tools_in_llm_span: bool | Unset = False required_scorers: list[str] | None | Unset = UNSET required_metric_ids: list[str] | None | Unset = UNSET - roll_up_strategy: None | RollUpStrategy | Unset = UNSET - roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset = UNSET + roll_up_strategy: None | RollUpStrategy | str | Unset = UNSET + roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset = UNSET prompt: None | str | Unset = UNSET lora_task_id: int | None | Unset = UNSET lora_weights_path: None | str | Unset = UNSET - luna_input_type: LunaInputTypeEnum | None | Unset = UNSET - luna_output_type: LunaOutputTypeEnum | None | Unset = UNSET + luna_input_type: LunaInputTypeEnum | None | str | Unset = UNSET + luna_output_type: LunaOutputTypeEnum | None | str | Unset = UNSET class_name_to_vocab_ix: ( CustomizedPromptInjectionGPTScorerClassNameToVocabIxType0 | CustomizedPromptInjectionGPTScorerClassNameToVocabIxType1 @@ -199,7 +199,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.sub_scorers, Unset): sub_scorers = [] for sub_scorers_item_data in self.sub_scorers: - sub_scorers_item = sub_scorers_item_data.value + sub_scorers_item: str + if isinstance(sub_scorers_item_data, ScorerName): + sub_scorers_item = sub_scorers_item_data.value + else: + sub_scorers_item = sub_scorers_item_data sub_scorers.append(sub_scorers_item) filters: list[dict[str, Any]] | None | Unset @@ -287,7 +291,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.scoreable_node_types, list): scoreable_node_types = [] for scoreable_node_types_type_0_item_data in self.scoreable_node_types: - scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + scoreable_node_types_type_0_item: str + if isinstance(scoreable_node_types_type_0_item_data, NodeType): + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + else: + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data scoreable_node_types.append(scoreable_node_types_type_0_item) else: @@ -321,7 +329,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -361,7 +373,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.roll_up_methods, list): roll_up_methods = [] for roll_up_methods_type_0_item_data in self.roll_up_methods: - roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + roll_up_methods_type_0_item: str + if isinstance(roll_up_methods_type_0_item_data, NumericRollUpMethod): + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + else: + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data roll_up_methods.append(roll_up_methods_type_0_item) elif isinstance(self.roll_up_methods, list): @@ -610,11 +626,25 @@ def _parse_extra(data: object) -> CustomizedPromptInjectionGPTScorerExtraType0 | extra = _parse_extra(d.pop("extra", UNSET)) _sub_scorers = d.pop("sub_scorers", UNSET) - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET if _sub_scorers is not UNSET: sub_scorers = [] for sub_scorers_item_data in _sub_scorers: - sub_scorers_item = ScorerName(sub_scorers_item_data) + + def _parse_sub_scorers_item(data: object) -> ScorerName | str: + try: + if not isinstance(data, str): + raise TypeError() + sub_scorers_item_type_0 = ScorerName(data) + + return sub_scorers_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for sub_scorers_item") + return cast(ScorerName | str, data) + + sub_scorers_item = _parse_sub_scorers_item(sub_scorers_item_data) sub_scorers.append(sub_scorers_item) @@ -754,7 +784,7 @@ def _parse_can_copy_to_llm(data: object) -> bool | None | Unset: can_copy_to_llm = _parse_can_copy_to_llm(d.pop("can_copy_to_llm", UNSET)) - def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: + def _parse_scoreable_node_types(data: object) -> list[NodeType | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -765,14 +795,30 @@ def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: scoreable_node_types_type_0 = [] _scoreable_node_types_type_0 = data for scoreable_node_types_type_0_item_data in _scoreable_node_types_type_0: - scoreable_node_types_type_0_item = NodeType(scoreable_node_types_type_0_item_data) + + def _parse_scoreable_node_types_type_0_item(data: object) -> NodeType | str: + try: + if not isinstance(data, str): + raise TypeError() + scoreable_node_types_type_0_item_type_0 = NodeType(data) + + return scoreable_node_types_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scoreable_node_types_type_0_item") + return cast(NodeType | str, data) + + scoreable_node_types_type_0_item = _parse_scoreable_node_types_type_0_item( + scoreable_node_types_type_0_item_data + ) scoreable_node_types_type_0.append(scoreable_node_types_type_0_item) return scoreable_node_types_type_0 except: # noqa: E722 pass - return cast(list[NodeType] | None | Unset, data) + return cast(list[NodeType | str] | None | Unset, data) scoreable_node_types = _parse_scoreable_node_types(d.pop("scoreable_node_types", UNSET)) @@ -785,7 +831,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -798,11 +844,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -815,11 +863,13 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -830,14 +880,30 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) @@ -877,7 +943,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: required_metric_ids = _parse_required_metric_ids(d.pop("required_metric_ids", UNSET)) - def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: + def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -890,13 +956,15 @@ def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: return roll_up_strategy_type_0 except: # noqa: E722 pass - return cast(None | RollUpStrategy | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_strategy") + return cast(None | RollUpStrategy | str | Unset, data) roll_up_strategy = _parse_roll_up_strategy(d.pop("roll_up_strategy", UNSET)) def _parse_roll_up_methods( data: object, - ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset: + ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -907,7 +975,21 @@ def _parse_roll_up_methods( roll_up_methods_type_0 = [] _roll_up_methods_type_0 = data for roll_up_methods_type_0_item_data in _roll_up_methods_type_0: - roll_up_methods_type_0_item = NumericRollUpMethod(roll_up_methods_type_0_item_data) + + def _parse_roll_up_methods_type_0_item(data: object) -> NumericRollUpMethod | str: + try: + if not isinstance(data, str): + raise TypeError() + roll_up_methods_type_0_item_type_0 = NumericRollUpMethod(data) + + return roll_up_methods_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_methods_type_0_item") + return cast(NumericRollUpMethod | str, data) + + roll_up_methods_type_0_item = _parse_roll_up_methods_type_0_item(roll_up_methods_type_0_item_data) roll_up_methods_type_0.append(roll_up_methods_type_0_item) @@ -927,7 +1009,7 @@ def _parse_roll_up_methods( return roll_up_methods_type_1 except: # noqa: E722 pass - return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset, data) + return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset, data) roll_up_methods = _parse_roll_up_methods(d.pop("roll_up_methods", UNSET)) @@ -958,7 +1040,7 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: lora_weights_path = _parse_lora_weights_path(d.pop("lora_weights_path", UNSET)) - def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: + def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -971,11 +1053,13 @@ def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: return luna_input_type_type_0 except: # noqa: E722 pass - return cast(LunaInputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_input_type") + return cast(LunaInputTypeEnum | None | str | Unset, data) luna_input_type = _parse_luna_input_type(d.pop("luna_input_type", UNSET)) - def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: + def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -988,7 +1072,9 @@ def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: return luna_output_type_type_0 except: # noqa: E722 pass - return cast(LunaOutputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_output_type") + return cast(LunaOutputTypeEnum | None | str | Unset, data) luna_output_type = _parse_luna_output_type(d.pop("luna_output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/customized_sexist_gpt_scorer.py b/src/splunk_ao/resources/models/customized_sexist_gpt_scorer.py index b4d1a97c..844e8bc7 100644 --- a/src/splunk_ao/resources/models/customized_sexist_gpt_scorer.py +++ b/src/splunk_ao/resources/models/customized_sexist_gpt_scorer.py @@ -49,7 +49,7 @@ class CustomizedSexistGPTScorer: aggregates (CustomizedSexistGPTScorerAggregatesType0 | None | Unset): aggregate_keys (list[str] | Unset): extra (CustomizedSexistGPTScorerExtraType0 | None | Unset): - sub_scorers (list[ScorerName] | Unset): + sub_scorers (list[ScorerName | str] | Unset): filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): metric_name (None | str | Unset): description (None | str | Unset): @@ -63,21 +63,21 @@ class CustomizedSexistGPTScorer: scorer_version_id (None | str | Unset): user_code (None | str | Unset): can_copy_to_llm (bool | None | Unset): - scoreable_node_types (list[NodeType] | None | Unset): + scoreable_node_types (list[NodeType | str] | None | Unset): cot_enabled (bool | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): requires_tools_in_llm_span (bool | Unset): Default: False. required_scorers (list[str] | None | Unset): required_metric_ids (list[str] | None | Unset): - roll_up_strategy (None | RollUpStrategy | Unset): - roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset): + roll_up_strategy (None | RollUpStrategy | str | Unset): + roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset): prompt (None | str | Unset): lora_task_id (int | None | Unset): lora_weights_path (None | str | Unset): - luna_input_type (LunaInputTypeEnum | None | Unset): - luna_output_type (LunaOutputTypeEnum | None | Unset): + luna_input_type (LunaInputTypeEnum | None | str | Unset): + luna_output_type (LunaOutputTypeEnum | None | str | Unset): class_name_to_vocab_ix (CustomizedSexistGPTScorerClassNameToVocabIxType0 | CustomizedSexistGPTScorerClassNameToVocabIxType1 | None | Unset): scorer_path_name (None | str | Unset): @@ -92,7 +92,7 @@ class CustomizedSexistGPTScorer: aggregates: CustomizedSexistGPTScorerAggregatesType0 | None | Unset = UNSET aggregate_keys: list[str] | Unset = UNSET extra: CustomizedSexistGPTScorerExtraType0 | None | Unset = UNSET - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET metric_name: None | str | Unset = UNSET description: None | str | Unset = UNSET @@ -105,21 +105,21 @@ class CustomizedSexistGPTScorer: scorer_version_id: None | str | Unset = UNSET user_code: None | str | Unset = UNSET can_copy_to_llm: bool | None | Unset = UNSET - scoreable_node_types: list[NodeType] | None | Unset = UNSET + scoreable_node_types: list[NodeType | str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET requires_tools_in_llm_span: bool | Unset = False required_scorers: list[str] | None | Unset = UNSET required_metric_ids: list[str] | None | Unset = UNSET - roll_up_strategy: None | RollUpStrategy | Unset = UNSET - roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset = UNSET + roll_up_strategy: None | RollUpStrategy | str | Unset = UNSET + roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset = UNSET prompt: None | str | Unset = UNSET lora_task_id: int | None | Unset = UNSET lora_weights_path: None | str | Unset = UNSET - luna_input_type: LunaInputTypeEnum | None | Unset = UNSET - luna_output_type: LunaOutputTypeEnum | None | Unset = UNSET + luna_input_type: LunaInputTypeEnum | None | str | Unset = UNSET + luna_output_type: LunaOutputTypeEnum | None | str | Unset = UNSET class_name_to_vocab_ix: ( CustomizedSexistGPTScorerClassNameToVocabIxType0 | CustomizedSexistGPTScorerClassNameToVocabIxType1 @@ -191,7 +191,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.sub_scorers, Unset): sub_scorers = [] for sub_scorers_item_data in self.sub_scorers: - sub_scorers_item = sub_scorers_item_data.value + sub_scorers_item: str + if isinstance(sub_scorers_item_data, ScorerName): + sub_scorers_item = sub_scorers_item_data.value + else: + sub_scorers_item = sub_scorers_item_data sub_scorers.append(sub_scorers_item) filters: list[dict[str, Any]] | None | Unset @@ -279,7 +283,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.scoreable_node_types, list): scoreable_node_types = [] for scoreable_node_types_type_0_item_data in self.scoreable_node_types: - scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + scoreable_node_types_type_0_item: str + if isinstance(scoreable_node_types_type_0_item_data, NodeType): + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + else: + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data scoreable_node_types.append(scoreable_node_types_type_0_item) else: @@ -313,7 +321,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -353,7 +365,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.roll_up_methods, list): roll_up_methods = [] for roll_up_methods_type_0_item_data in self.roll_up_methods: - roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + roll_up_methods_type_0_item: str + if isinstance(roll_up_methods_type_0_item_data, NumericRollUpMethod): + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + else: + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data roll_up_methods.append(roll_up_methods_type_0_item) elif isinstance(self.roll_up_methods, list): @@ -598,11 +614,25 @@ def _parse_extra(data: object) -> CustomizedSexistGPTScorerExtraType0 | None | U extra = _parse_extra(d.pop("extra", UNSET)) _sub_scorers = d.pop("sub_scorers", UNSET) - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET if _sub_scorers is not UNSET: sub_scorers = [] for sub_scorers_item_data in _sub_scorers: - sub_scorers_item = ScorerName(sub_scorers_item_data) + + def _parse_sub_scorers_item(data: object) -> ScorerName | str: + try: + if not isinstance(data, str): + raise TypeError() + sub_scorers_item_type_0 = ScorerName(data) + + return sub_scorers_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for sub_scorers_item") + return cast(ScorerName | str, data) + + sub_scorers_item = _parse_sub_scorers_item(sub_scorers_item_data) sub_scorers.append(sub_scorers_item) @@ -742,7 +772,7 @@ def _parse_can_copy_to_llm(data: object) -> bool | None | Unset: can_copy_to_llm = _parse_can_copy_to_llm(d.pop("can_copy_to_llm", UNSET)) - def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: + def _parse_scoreable_node_types(data: object) -> list[NodeType | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -753,14 +783,30 @@ def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: scoreable_node_types_type_0 = [] _scoreable_node_types_type_0 = data for scoreable_node_types_type_0_item_data in _scoreable_node_types_type_0: - scoreable_node_types_type_0_item = NodeType(scoreable_node_types_type_0_item_data) + + def _parse_scoreable_node_types_type_0_item(data: object) -> NodeType | str: + try: + if not isinstance(data, str): + raise TypeError() + scoreable_node_types_type_0_item_type_0 = NodeType(data) + + return scoreable_node_types_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scoreable_node_types_type_0_item") + return cast(NodeType | str, data) + + scoreable_node_types_type_0_item = _parse_scoreable_node_types_type_0_item( + scoreable_node_types_type_0_item_data + ) scoreable_node_types_type_0.append(scoreable_node_types_type_0_item) return scoreable_node_types_type_0 except: # noqa: E722 pass - return cast(list[NodeType] | None | Unset, data) + return cast(list[NodeType | str] | None | Unset, data) scoreable_node_types = _parse_scoreable_node_types(d.pop("scoreable_node_types", UNSET)) @@ -773,7 +819,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -786,11 +832,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -803,11 +851,13 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -818,14 +868,30 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) @@ -865,7 +931,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: required_metric_ids = _parse_required_metric_ids(d.pop("required_metric_ids", UNSET)) - def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: + def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -878,13 +944,15 @@ def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: return roll_up_strategy_type_0 except: # noqa: E722 pass - return cast(None | RollUpStrategy | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_strategy") + return cast(None | RollUpStrategy | str | Unset, data) roll_up_strategy = _parse_roll_up_strategy(d.pop("roll_up_strategy", UNSET)) def _parse_roll_up_methods( data: object, - ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset: + ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -895,7 +963,21 @@ def _parse_roll_up_methods( roll_up_methods_type_0 = [] _roll_up_methods_type_0 = data for roll_up_methods_type_0_item_data in _roll_up_methods_type_0: - roll_up_methods_type_0_item = NumericRollUpMethod(roll_up_methods_type_0_item_data) + + def _parse_roll_up_methods_type_0_item(data: object) -> NumericRollUpMethod | str: + try: + if not isinstance(data, str): + raise TypeError() + roll_up_methods_type_0_item_type_0 = NumericRollUpMethod(data) + + return roll_up_methods_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_methods_type_0_item") + return cast(NumericRollUpMethod | str, data) + + roll_up_methods_type_0_item = _parse_roll_up_methods_type_0_item(roll_up_methods_type_0_item_data) roll_up_methods_type_0.append(roll_up_methods_type_0_item) @@ -915,7 +997,7 @@ def _parse_roll_up_methods( return roll_up_methods_type_1 except: # noqa: E722 pass - return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset, data) + return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset, data) roll_up_methods = _parse_roll_up_methods(d.pop("roll_up_methods", UNSET)) @@ -946,7 +1028,7 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: lora_weights_path = _parse_lora_weights_path(d.pop("lora_weights_path", UNSET)) - def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: + def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -959,11 +1041,13 @@ def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: return luna_input_type_type_0 except: # noqa: E722 pass - return cast(LunaInputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_input_type") + return cast(LunaInputTypeEnum | None | str | Unset, data) luna_input_type = _parse_luna_input_type(d.pop("luna_input_type", UNSET)) - def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: + def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -976,7 +1060,9 @@ def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: return luna_output_type_type_0 except: # noqa: E722 pass - return cast(LunaOutputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_output_type") + return cast(LunaOutputTypeEnum | None | str | Unset, data) luna_output_type = _parse_luna_output_type(d.pop("luna_output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/customized_tool_error_rate_gpt_scorer.py b/src/splunk_ao/resources/models/customized_tool_error_rate_gpt_scorer.py index d4c857b8..b80ced40 100644 --- a/src/splunk_ao/resources/models/customized_tool_error_rate_gpt_scorer.py +++ b/src/splunk_ao/resources/models/customized_tool_error_rate_gpt_scorer.py @@ -51,7 +51,7 @@ class CustomizedToolErrorRateGPTScorer: aggregates (CustomizedToolErrorRateGPTScorerAggregatesType0 | None | Unset): aggregate_keys (list[str] | Unset): extra (CustomizedToolErrorRateGPTScorerExtraType0 | None | Unset): - sub_scorers (list[ScorerName] | Unset): + sub_scorers (list[ScorerName | str] | Unset): filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): metric_name (None | str | Unset): description (None | str | Unset): @@ -65,21 +65,21 @@ class CustomizedToolErrorRateGPTScorer: scorer_version_id (None | str | Unset): user_code (None | str | Unset): can_copy_to_llm (bool | None | Unset): - scoreable_node_types (list[NodeType] | None | Unset): + scoreable_node_types (list[NodeType | str] | None | Unset): cot_enabled (bool | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): requires_tools_in_llm_span (bool | Unset): Default: False. required_scorers (list[str] | None | Unset): required_metric_ids (list[str] | None | Unset): - roll_up_strategy (None | RollUpStrategy | Unset): - roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset): + roll_up_strategy (None | RollUpStrategy | str | Unset): + roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset): prompt (None | str | Unset): lora_task_id (int | None | Unset): lora_weights_path (None | str | Unset): - luna_input_type (LunaInputTypeEnum | None | Unset): - luna_output_type (LunaOutputTypeEnum | None | Unset): + luna_input_type (LunaInputTypeEnum | None | str | Unset): + luna_output_type (LunaOutputTypeEnum | None | str | Unset): class_name_to_vocab_ix (CustomizedToolErrorRateGPTScorerClassNameToVocabIxType0 | CustomizedToolErrorRateGPTScorerClassNameToVocabIxType1 | None | Unset): scorer_path_name (None | str | Unset): @@ -94,7 +94,7 @@ class CustomizedToolErrorRateGPTScorer: aggregates: CustomizedToolErrorRateGPTScorerAggregatesType0 | None | Unset = UNSET aggregate_keys: list[str] | Unset = UNSET extra: CustomizedToolErrorRateGPTScorerExtraType0 | None | Unset = UNSET - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET metric_name: None | str | Unset = UNSET description: None | str | Unset = UNSET @@ -107,21 +107,21 @@ class CustomizedToolErrorRateGPTScorer: scorer_version_id: None | str | Unset = UNSET user_code: None | str | Unset = UNSET can_copy_to_llm: bool | None | Unset = UNSET - scoreable_node_types: list[NodeType] | None | Unset = UNSET + scoreable_node_types: list[NodeType | str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET requires_tools_in_llm_span: bool | Unset = False required_scorers: list[str] | None | Unset = UNSET required_metric_ids: list[str] | None | Unset = UNSET - roll_up_strategy: None | RollUpStrategy | Unset = UNSET - roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset = UNSET + roll_up_strategy: None | RollUpStrategy | str | Unset = UNSET + roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset = UNSET prompt: None | str | Unset = UNSET lora_task_id: int | None | Unset = UNSET lora_weights_path: None | str | Unset = UNSET - luna_input_type: LunaInputTypeEnum | None | Unset = UNSET - luna_output_type: LunaOutputTypeEnum | None | Unset = UNSET + luna_input_type: LunaInputTypeEnum | None | str | Unset = UNSET + luna_output_type: LunaOutputTypeEnum | None | str | Unset = UNSET class_name_to_vocab_ix: ( CustomizedToolErrorRateGPTScorerClassNameToVocabIxType0 | CustomizedToolErrorRateGPTScorerClassNameToVocabIxType1 @@ -197,7 +197,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.sub_scorers, Unset): sub_scorers = [] for sub_scorers_item_data in self.sub_scorers: - sub_scorers_item = sub_scorers_item_data.value + sub_scorers_item: str + if isinstance(sub_scorers_item_data, ScorerName): + sub_scorers_item = sub_scorers_item_data.value + else: + sub_scorers_item = sub_scorers_item_data sub_scorers.append(sub_scorers_item) filters: list[dict[str, Any]] | None | Unset @@ -285,7 +289,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.scoreable_node_types, list): scoreable_node_types = [] for scoreable_node_types_type_0_item_data in self.scoreable_node_types: - scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + scoreable_node_types_type_0_item: str + if isinstance(scoreable_node_types_type_0_item_data, NodeType): + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + else: + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data scoreable_node_types.append(scoreable_node_types_type_0_item) else: @@ -319,7 +327,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -359,7 +371,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.roll_up_methods, list): roll_up_methods = [] for roll_up_methods_type_0_item_data in self.roll_up_methods: - roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + roll_up_methods_type_0_item: str + if isinstance(roll_up_methods_type_0_item_data, NumericRollUpMethod): + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + else: + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data roll_up_methods.append(roll_up_methods_type_0_item) elif isinstance(self.roll_up_methods, list): @@ -608,11 +624,25 @@ def _parse_extra(data: object) -> CustomizedToolErrorRateGPTScorerExtraType0 | N extra = _parse_extra(d.pop("extra", UNSET)) _sub_scorers = d.pop("sub_scorers", UNSET) - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET if _sub_scorers is not UNSET: sub_scorers = [] for sub_scorers_item_data in _sub_scorers: - sub_scorers_item = ScorerName(sub_scorers_item_data) + + def _parse_sub_scorers_item(data: object) -> ScorerName | str: + try: + if not isinstance(data, str): + raise TypeError() + sub_scorers_item_type_0 = ScorerName(data) + + return sub_scorers_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for sub_scorers_item") + return cast(ScorerName | str, data) + + sub_scorers_item = _parse_sub_scorers_item(sub_scorers_item_data) sub_scorers.append(sub_scorers_item) @@ -752,7 +782,7 @@ def _parse_can_copy_to_llm(data: object) -> bool | None | Unset: can_copy_to_llm = _parse_can_copy_to_llm(d.pop("can_copy_to_llm", UNSET)) - def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: + def _parse_scoreable_node_types(data: object) -> list[NodeType | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -763,14 +793,30 @@ def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: scoreable_node_types_type_0 = [] _scoreable_node_types_type_0 = data for scoreable_node_types_type_0_item_data in _scoreable_node_types_type_0: - scoreable_node_types_type_0_item = NodeType(scoreable_node_types_type_0_item_data) + + def _parse_scoreable_node_types_type_0_item(data: object) -> NodeType | str: + try: + if not isinstance(data, str): + raise TypeError() + scoreable_node_types_type_0_item_type_0 = NodeType(data) + + return scoreable_node_types_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scoreable_node_types_type_0_item") + return cast(NodeType | str, data) + + scoreable_node_types_type_0_item = _parse_scoreable_node_types_type_0_item( + scoreable_node_types_type_0_item_data + ) scoreable_node_types_type_0.append(scoreable_node_types_type_0_item) return scoreable_node_types_type_0 except: # noqa: E722 pass - return cast(list[NodeType] | None | Unset, data) + return cast(list[NodeType | str] | None | Unset, data) scoreable_node_types = _parse_scoreable_node_types(d.pop("scoreable_node_types", UNSET)) @@ -783,7 +829,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -796,11 +842,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -813,11 +861,13 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -828,14 +878,30 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) @@ -875,7 +941,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: required_metric_ids = _parse_required_metric_ids(d.pop("required_metric_ids", UNSET)) - def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: + def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -888,13 +954,15 @@ def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: return roll_up_strategy_type_0 except: # noqa: E722 pass - return cast(None | RollUpStrategy | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_strategy") + return cast(None | RollUpStrategy | str | Unset, data) roll_up_strategy = _parse_roll_up_strategy(d.pop("roll_up_strategy", UNSET)) def _parse_roll_up_methods( data: object, - ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset: + ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -905,7 +973,21 @@ def _parse_roll_up_methods( roll_up_methods_type_0 = [] _roll_up_methods_type_0 = data for roll_up_methods_type_0_item_data in _roll_up_methods_type_0: - roll_up_methods_type_0_item = NumericRollUpMethod(roll_up_methods_type_0_item_data) + + def _parse_roll_up_methods_type_0_item(data: object) -> NumericRollUpMethod | str: + try: + if not isinstance(data, str): + raise TypeError() + roll_up_methods_type_0_item_type_0 = NumericRollUpMethod(data) + + return roll_up_methods_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_methods_type_0_item") + return cast(NumericRollUpMethod | str, data) + + roll_up_methods_type_0_item = _parse_roll_up_methods_type_0_item(roll_up_methods_type_0_item_data) roll_up_methods_type_0.append(roll_up_methods_type_0_item) @@ -925,7 +1007,7 @@ def _parse_roll_up_methods( return roll_up_methods_type_1 except: # noqa: E722 pass - return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset, data) + return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset, data) roll_up_methods = _parse_roll_up_methods(d.pop("roll_up_methods", UNSET)) @@ -956,7 +1038,7 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: lora_weights_path = _parse_lora_weights_path(d.pop("lora_weights_path", UNSET)) - def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: + def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -969,11 +1051,13 @@ def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: return luna_input_type_type_0 except: # noqa: E722 pass - return cast(LunaInputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_input_type") + return cast(LunaInputTypeEnum | None | str | Unset, data) luna_input_type = _parse_luna_input_type(d.pop("luna_input_type", UNSET)) - def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: + def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -986,7 +1070,9 @@ def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: return luna_output_type_type_0 except: # noqa: E722 pass - return cast(LunaOutputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_output_type") + return cast(LunaOutputTypeEnum | None | str | Unset, data) luna_output_type = _parse_luna_output_type(d.pop("luna_output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/customized_tool_selection_quality_gpt_scorer.py b/src/splunk_ao/resources/models/customized_tool_selection_quality_gpt_scorer.py index a858241e..9ed65d8f 100644 --- a/src/splunk_ao/resources/models/customized_tool_selection_quality_gpt_scorer.py +++ b/src/splunk_ao/resources/models/customized_tool_selection_quality_gpt_scorer.py @@ -54,7 +54,7 @@ class CustomizedToolSelectionQualityGPTScorer: aggregates (CustomizedToolSelectionQualityGPTScorerAggregatesType0 | None | Unset): aggregate_keys (list[str] | Unset): extra (CustomizedToolSelectionQualityGPTScorerExtraType0 | None | Unset): - sub_scorers (list[ScorerName] | Unset): + sub_scorers (list[ScorerName | str] | Unset): filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): metric_name (None | str | Unset): description (None | str | Unset): @@ -68,21 +68,21 @@ class CustomizedToolSelectionQualityGPTScorer: scorer_version_id (None | str | Unset): user_code (None | str | Unset): can_copy_to_llm (bool | None | Unset): - scoreable_node_types (list[NodeType] | None | Unset): + scoreable_node_types (list[NodeType | str] | None | Unset): cot_enabled (bool | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): requires_tools_in_llm_span (bool | Unset): Default: False. required_scorers (list[str] | None | Unset): required_metric_ids (list[str] | None | Unset): - roll_up_strategy (None | RollUpStrategy | Unset): - roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset): + roll_up_strategy (None | RollUpStrategy | str | Unset): + roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset): prompt (None | str | Unset): lora_task_id (int | None | Unset): lora_weights_path (None | str | Unset): - luna_input_type (LunaInputTypeEnum | None | Unset): - luna_output_type (LunaOutputTypeEnum | None | Unset): + luna_input_type (LunaInputTypeEnum | None | str | Unset): + luna_output_type (LunaOutputTypeEnum | None | str | Unset): class_name_to_vocab_ix (CustomizedToolSelectionQualityGPTScorerClassNameToVocabIxType0 | CustomizedToolSelectionQualityGPTScorerClassNameToVocabIxType1 | None | Unset): scorer_path_name (None | str | Unset): @@ -97,7 +97,7 @@ class CustomizedToolSelectionQualityGPTScorer: aggregates: CustomizedToolSelectionQualityGPTScorerAggregatesType0 | None | Unset = UNSET aggregate_keys: list[str] | Unset = UNSET extra: CustomizedToolSelectionQualityGPTScorerExtraType0 | None | Unset = UNSET - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET metric_name: None | str | Unset = UNSET description: None | str | Unset = UNSET @@ -110,21 +110,21 @@ class CustomizedToolSelectionQualityGPTScorer: scorer_version_id: None | str | Unset = UNSET user_code: None | str | Unset = UNSET can_copy_to_llm: bool | None | Unset = UNSET - scoreable_node_types: list[NodeType] | None | Unset = UNSET + scoreable_node_types: list[NodeType | str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET requires_tools_in_llm_span: bool | Unset = False required_scorers: list[str] | None | Unset = UNSET required_metric_ids: list[str] | None | Unset = UNSET - roll_up_strategy: None | RollUpStrategy | Unset = UNSET - roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset = UNSET + roll_up_strategy: None | RollUpStrategy | str | Unset = UNSET + roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset = UNSET prompt: None | str | Unset = UNSET lora_task_id: int | None | Unset = UNSET lora_weights_path: None | str | Unset = UNSET - luna_input_type: LunaInputTypeEnum | None | Unset = UNSET - luna_output_type: LunaOutputTypeEnum | None | Unset = UNSET + luna_input_type: LunaInputTypeEnum | None | str | Unset = UNSET + luna_output_type: LunaOutputTypeEnum | None | str | Unset = UNSET class_name_to_vocab_ix: ( CustomizedToolSelectionQualityGPTScorerClassNameToVocabIxType0 | CustomizedToolSelectionQualityGPTScorerClassNameToVocabIxType1 @@ -200,7 +200,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.sub_scorers, Unset): sub_scorers = [] for sub_scorers_item_data in self.sub_scorers: - sub_scorers_item = sub_scorers_item_data.value + sub_scorers_item: str + if isinstance(sub_scorers_item_data, ScorerName): + sub_scorers_item = sub_scorers_item_data.value + else: + sub_scorers_item = sub_scorers_item_data sub_scorers.append(sub_scorers_item) filters: list[dict[str, Any]] | None | Unset @@ -288,7 +292,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.scoreable_node_types, list): scoreable_node_types = [] for scoreable_node_types_type_0_item_data in self.scoreable_node_types: - scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + scoreable_node_types_type_0_item: str + if isinstance(scoreable_node_types_type_0_item_data, NodeType): + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + else: + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data scoreable_node_types.append(scoreable_node_types_type_0_item) else: @@ -322,7 +330,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -362,7 +374,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.roll_up_methods, list): roll_up_methods = [] for roll_up_methods_type_0_item_data in self.roll_up_methods: - roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + roll_up_methods_type_0_item: str + if isinstance(roll_up_methods_type_0_item_data, NumericRollUpMethod): + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + else: + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data roll_up_methods.append(roll_up_methods_type_0_item) elif isinstance(self.roll_up_methods, list): @@ -611,11 +627,25 @@ def _parse_extra(data: object) -> CustomizedToolSelectionQualityGPTScorerExtraTy extra = _parse_extra(d.pop("extra", UNSET)) _sub_scorers = d.pop("sub_scorers", UNSET) - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET if _sub_scorers is not UNSET: sub_scorers = [] for sub_scorers_item_data in _sub_scorers: - sub_scorers_item = ScorerName(sub_scorers_item_data) + + def _parse_sub_scorers_item(data: object) -> ScorerName | str: + try: + if not isinstance(data, str): + raise TypeError() + sub_scorers_item_type_0 = ScorerName(data) + + return sub_scorers_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for sub_scorers_item") + return cast(ScorerName | str, data) + + sub_scorers_item = _parse_sub_scorers_item(sub_scorers_item_data) sub_scorers.append(sub_scorers_item) @@ -755,7 +785,7 @@ def _parse_can_copy_to_llm(data: object) -> bool | None | Unset: can_copy_to_llm = _parse_can_copy_to_llm(d.pop("can_copy_to_llm", UNSET)) - def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: + def _parse_scoreable_node_types(data: object) -> list[NodeType | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -766,14 +796,30 @@ def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: scoreable_node_types_type_0 = [] _scoreable_node_types_type_0 = data for scoreable_node_types_type_0_item_data in _scoreable_node_types_type_0: - scoreable_node_types_type_0_item = NodeType(scoreable_node_types_type_0_item_data) + + def _parse_scoreable_node_types_type_0_item(data: object) -> NodeType | str: + try: + if not isinstance(data, str): + raise TypeError() + scoreable_node_types_type_0_item_type_0 = NodeType(data) + + return scoreable_node_types_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scoreable_node_types_type_0_item") + return cast(NodeType | str, data) + + scoreable_node_types_type_0_item = _parse_scoreable_node_types_type_0_item( + scoreable_node_types_type_0_item_data + ) scoreable_node_types_type_0.append(scoreable_node_types_type_0_item) return scoreable_node_types_type_0 except: # noqa: E722 pass - return cast(list[NodeType] | None | Unset, data) + return cast(list[NodeType | str] | None | Unset, data) scoreable_node_types = _parse_scoreable_node_types(d.pop("scoreable_node_types", UNSET)) @@ -786,7 +832,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -799,11 +845,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -816,11 +864,13 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -831,14 +881,30 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) @@ -878,7 +944,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: required_metric_ids = _parse_required_metric_ids(d.pop("required_metric_ids", UNSET)) - def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: + def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -891,13 +957,15 @@ def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: return roll_up_strategy_type_0 except: # noqa: E722 pass - return cast(None | RollUpStrategy | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_strategy") + return cast(None | RollUpStrategy | str | Unset, data) roll_up_strategy = _parse_roll_up_strategy(d.pop("roll_up_strategy", UNSET)) def _parse_roll_up_methods( data: object, - ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset: + ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -908,7 +976,21 @@ def _parse_roll_up_methods( roll_up_methods_type_0 = [] _roll_up_methods_type_0 = data for roll_up_methods_type_0_item_data in _roll_up_methods_type_0: - roll_up_methods_type_0_item = NumericRollUpMethod(roll_up_methods_type_0_item_data) + + def _parse_roll_up_methods_type_0_item(data: object) -> NumericRollUpMethod | str: + try: + if not isinstance(data, str): + raise TypeError() + roll_up_methods_type_0_item_type_0 = NumericRollUpMethod(data) + + return roll_up_methods_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_methods_type_0_item") + return cast(NumericRollUpMethod | str, data) + + roll_up_methods_type_0_item = _parse_roll_up_methods_type_0_item(roll_up_methods_type_0_item_data) roll_up_methods_type_0.append(roll_up_methods_type_0_item) @@ -928,7 +1010,7 @@ def _parse_roll_up_methods( return roll_up_methods_type_1 except: # noqa: E722 pass - return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset, data) + return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset, data) roll_up_methods = _parse_roll_up_methods(d.pop("roll_up_methods", UNSET)) @@ -959,7 +1041,7 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: lora_weights_path = _parse_lora_weights_path(d.pop("lora_weights_path", UNSET)) - def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: + def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -972,11 +1054,13 @@ def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: return luna_input_type_type_0 except: # noqa: E722 pass - return cast(LunaInputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_input_type") + return cast(LunaInputTypeEnum | None | str | Unset, data) luna_input_type = _parse_luna_input_type(d.pop("luna_input_type", UNSET)) - def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: + def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -989,7 +1073,9 @@ def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: return luna_output_type_type_0 except: # noqa: E722 pass - return cast(LunaOutputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_output_type") + return cast(LunaOutputTypeEnum | None | str | Unset, data) luna_output_type = _parse_luna_output_type(d.pop("luna_output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/customized_toxicity_gpt_scorer.py b/src/splunk_ao/resources/models/customized_toxicity_gpt_scorer.py index 975e3a36..81911975 100644 --- a/src/splunk_ao/resources/models/customized_toxicity_gpt_scorer.py +++ b/src/splunk_ao/resources/models/customized_toxicity_gpt_scorer.py @@ -49,7 +49,7 @@ class CustomizedToxicityGPTScorer: aggregates (CustomizedToxicityGPTScorerAggregatesType0 | None | Unset): aggregate_keys (list[str] | Unset): extra (CustomizedToxicityGPTScorerExtraType0 | None | Unset): - sub_scorers (list[ScorerName] | Unset): + sub_scorers (list[ScorerName | str] | Unset): filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): metric_name (None | str | Unset): description (None | str | Unset): @@ -63,21 +63,21 @@ class CustomizedToxicityGPTScorer: scorer_version_id (None | str | Unset): user_code (None | str | Unset): can_copy_to_llm (bool | None | Unset): - scoreable_node_types (list[NodeType] | None | Unset): + scoreable_node_types (list[NodeType | str] | None | Unset): cot_enabled (bool | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): requires_tools_in_llm_span (bool | Unset): Default: False. required_scorers (list[str] | None | Unset): required_metric_ids (list[str] | None | Unset): - roll_up_strategy (None | RollUpStrategy | Unset): - roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset): + roll_up_strategy (None | RollUpStrategy | str | Unset): + roll_up_methods (list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset): prompt (None | str | Unset): lora_task_id (int | None | Unset): lora_weights_path (None | str | Unset): - luna_input_type (LunaInputTypeEnum | None | Unset): - luna_output_type (LunaOutputTypeEnum | None | Unset): + luna_input_type (LunaInputTypeEnum | None | str | Unset): + luna_output_type (LunaOutputTypeEnum | None | str | Unset): class_name_to_vocab_ix (CustomizedToxicityGPTScorerClassNameToVocabIxType0 | CustomizedToxicityGPTScorerClassNameToVocabIxType1 | None | Unset): scorer_path_name (None | str | Unset): @@ -92,7 +92,7 @@ class CustomizedToxicityGPTScorer: aggregates: CustomizedToxicityGPTScorerAggregatesType0 | None | Unset = UNSET aggregate_keys: list[str] | Unset = UNSET extra: CustomizedToxicityGPTScorerExtraType0 | None | Unset = UNSET - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET metric_name: None | str | Unset = UNSET description: None | str | Unset = UNSET @@ -105,21 +105,21 @@ class CustomizedToxicityGPTScorer: scorer_version_id: None | str | Unset = UNSET user_code: None | str | Unset = UNSET can_copy_to_llm: bool | None | Unset = UNSET - scoreable_node_types: list[NodeType] | None | Unset = UNSET + scoreable_node_types: list[NodeType | str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET requires_tools_in_llm_span: bool | Unset = False required_scorers: list[str] | None | Unset = UNSET required_metric_ids: list[str] | None | Unset = UNSET - roll_up_strategy: None | RollUpStrategy | Unset = UNSET - roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset = UNSET + roll_up_strategy: None | RollUpStrategy | str | Unset = UNSET + roll_up_methods: list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset = UNSET prompt: None | str | Unset = UNSET lora_task_id: int | None | Unset = UNSET lora_weights_path: None | str | Unset = UNSET - luna_input_type: LunaInputTypeEnum | None | Unset = UNSET - luna_output_type: LunaOutputTypeEnum | None | Unset = UNSET + luna_input_type: LunaInputTypeEnum | None | str | Unset = UNSET + luna_output_type: LunaOutputTypeEnum | None | str | Unset = UNSET class_name_to_vocab_ix: ( CustomizedToxicityGPTScorerClassNameToVocabIxType0 | CustomizedToxicityGPTScorerClassNameToVocabIxType1 @@ -191,7 +191,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.sub_scorers, Unset): sub_scorers = [] for sub_scorers_item_data in self.sub_scorers: - sub_scorers_item = sub_scorers_item_data.value + sub_scorers_item: str + if isinstance(sub_scorers_item_data, ScorerName): + sub_scorers_item = sub_scorers_item_data.value + else: + sub_scorers_item = sub_scorers_item_data sub_scorers.append(sub_scorers_item) filters: list[dict[str, Any]] | None | Unset @@ -279,7 +283,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.scoreable_node_types, list): scoreable_node_types = [] for scoreable_node_types_type_0_item_data in self.scoreable_node_types: - scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + scoreable_node_types_type_0_item: str + if isinstance(scoreable_node_types_type_0_item_data, NodeType): + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + else: + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data scoreable_node_types.append(scoreable_node_types_type_0_item) else: @@ -313,7 +321,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -353,7 +365,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.roll_up_methods, list): roll_up_methods = [] for roll_up_methods_type_0_item_data in self.roll_up_methods: - roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + roll_up_methods_type_0_item: str + if isinstance(roll_up_methods_type_0_item_data, NumericRollUpMethod): + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data.value + else: + roll_up_methods_type_0_item = roll_up_methods_type_0_item_data roll_up_methods.append(roll_up_methods_type_0_item) elif isinstance(self.roll_up_methods, list): @@ -598,11 +614,25 @@ def _parse_extra(data: object) -> CustomizedToxicityGPTScorerExtraType0 | None | extra = _parse_extra(d.pop("extra", UNSET)) _sub_scorers = d.pop("sub_scorers", UNSET) - sub_scorers: list[ScorerName] | Unset = UNSET + sub_scorers: list[ScorerName | str] | Unset = UNSET if _sub_scorers is not UNSET: sub_scorers = [] for sub_scorers_item_data in _sub_scorers: - sub_scorers_item = ScorerName(sub_scorers_item_data) + + def _parse_sub_scorers_item(data: object) -> ScorerName | str: + try: + if not isinstance(data, str): + raise TypeError() + sub_scorers_item_type_0 = ScorerName(data) + + return sub_scorers_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for sub_scorers_item") + return cast(ScorerName | str, data) + + sub_scorers_item = _parse_sub_scorers_item(sub_scorers_item_data) sub_scorers.append(sub_scorers_item) @@ -742,7 +772,7 @@ def _parse_can_copy_to_llm(data: object) -> bool | None | Unset: can_copy_to_llm = _parse_can_copy_to_llm(d.pop("can_copy_to_llm", UNSET)) - def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: + def _parse_scoreable_node_types(data: object) -> list[NodeType | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -753,14 +783,30 @@ def _parse_scoreable_node_types(data: object) -> list[NodeType] | None | Unset: scoreable_node_types_type_0 = [] _scoreable_node_types_type_0 = data for scoreable_node_types_type_0_item_data in _scoreable_node_types_type_0: - scoreable_node_types_type_0_item = NodeType(scoreable_node_types_type_0_item_data) + + def _parse_scoreable_node_types_type_0_item(data: object) -> NodeType | str: + try: + if not isinstance(data, str): + raise TypeError() + scoreable_node_types_type_0_item_type_0 = NodeType(data) + + return scoreable_node_types_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scoreable_node_types_type_0_item") + return cast(NodeType | str, data) + + scoreable_node_types_type_0_item = _parse_scoreable_node_types_type_0_item( + scoreable_node_types_type_0_item_data + ) scoreable_node_types_type_0.append(scoreable_node_types_type_0_item) return scoreable_node_types_type_0 except: # noqa: E722 pass - return cast(list[NodeType] | None | Unset, data) + return cast(list[NodeType | str] | None | Unset, data) scoreable_node_types = _parse_scoreable_node_types(d.pop("scoreable_node_types", UNSET)) @@ -773,7 +819,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -786,11 +832,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -803,11 +851,13 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -818,14 +868,30 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) @@ -865,7 +931,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: required_metric_ids = _parse_required_metric_ids(d.pop("required_metric_ids", UNSET)) - def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: + def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -878,13 +944,15 @@ def _parse_roll_up_strategy(data: object) -> None | RollUpStrategy | Unset: return roll_up_strategy_type_0 except: # noqa: E722 pass - return cast(None | RollUpStrategy | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_strategy") + return cast(None | RollUpStrategy | str | Unset, data) roll_up_strategy = _parse_roll_up_strategy(d.pop("roll_up_strategy", UNSET)) def _parse_roll_up_methods( data: object, - ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset: + ) -> list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -895,7 +963,21 @@ def _parse_roll_up_methods( roll_up_methods_type_0 = [] _roll_up_methods_type_0 = data for roll_up_methods_type_0_item_data in _roll_up_methods_type_0: - roll_up_methods_type_0_item = NumericRollUpMethod(roll_up_methods_type_0_item_data) + + def _parse_roll_up_methods_type_0_item(data: object) -> NumericRollUpMethod | str: + try: + if not isinstance(data, str): + raise TypeError() + roll_up_methods_type_0_item_type_0 = NumericRollUpMethod(data) + + return roll_up_methods_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_methods_type_0_item") + return cast(NumericRollUpMethod | str, data) + + roll_up_methods_type_0_item = _parse_roll_up_methods_type_0_item(roll_up_methods_type_0_item_data) roll_up_methods_type_0.append(roll_up_methods_type_0_item) @@ -915,7 +997,7 @@ def _parse_roll_up_methods( return roll_up_methods_type_1 except: # noqa: E722 pass - return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset, data) + return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod | str] | None | Unset, data) roll_up_methods = _parse_roll_up_methods(d.pop("roll_up_methods", UNSET)) @@ -946,7 +1028,7 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: lora_weights_path = _parse_lora_weights_path(d.pop("lora_weights_path", UNSET)) - def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: + def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -959,11 +1041,13 @@ def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: return luna_input_type_type_0 except: # noqa: E722 pass - return cast(LunaInputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_input_type") + return cast(LunaInputTypeEnum | None | str | Unset, data) luna_input_type = _parse_luna_input_type(d.pop("luna_input_type", UNSET)) - def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: + def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -976,7 +1060,9 @@ def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: return luna_output_type_type_0 except: # noqa: E722 pass - return cast(LunaOutputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_output_type") + return cast(LunaOutputTypeEnum | None | str | Unset, data) luna_output_type = _parse_luna_output_type(d.pop("luna_output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/dataset_content_filter.py b/src/splunk_ao/resources/models/dataset_content_filter.py index a666e6e7..b926c8b5 100644 --- a/src/splunk_ao/resources/models/dataset_content_filter.py +++ b/src/splunk_ao/resources/models/dataset_content_filter.py @@ -1,7 +1,7 @@ from __future__ import annotations from collections.abc import Mapping -from typing import Any, TypeVar +from typing import Any, TypeVar, cast from attrs import define as _attrs_define from attrs import field as _attrs_field @@ -18,12 +18,12 @@ class DatasetContentFilter: Attributes: column_name (str): value (str): - operator (DatasetContentFilterOperator | Unset): + operator (DatasetContentFilterOperator | str | Unset): """ column_name: str value: str - operator: DatasetContentFilterOperator | Unset = UNSET + operator: DatasetContentFilterOperator | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -31,9 +31,13 @@ def to_dict(self) -> dict[str, Any]: value = self.value - operator: str | Unset = UNSET - if not isinstance(self.operator, Unset): + operator: str | Unset + if isinstance(self.operator, Unset): + operator = UNSET + elif isinstance(self.operator, DatasetContentFilterOperator): operator = self.operator.value + else: + operator = self.operator field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -50,12 +54,22 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: value = d.pop("value") - _operator = d.pop("operator", UNSET) - operator: DatasetContentFilterOperator | Unset - if isinstance(_operator, Unset): - operator = UNSET - else: - operator = DatasetContentFilterOperator(_operator) + def _parse_operator(data: object) -> DatasetContentFilterOperator | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = DatasetContentFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(DatasetContentFilterOperator | str | Unset, data) + + operator = _parse_operator(d.pop("operator", UNSET)) dataset_content_filter = cls(column_name=column_name, value=value, operator=operator) diff --git a/src/splunk_ao/resources/models/dataset_draft_filter.py b/src/splunk_ao/resources/models/dataset_draft_filter.py index 9af0d1fa..27ad693e 100644 --- a/src/splunk_ao/resources/models/dataset_draft_filter.py +++ b/src/splunk_ao/resources/models/dataset_draft_filter.py @@ -18,12 +18,12 @@ class DatasetDraftFilter: Attributes: value (bool): name (Literal['draft'] | Unset): Default: 'draft'. - operator (DatasetDraftFilterOperator | Unset): Default: DatasetDraftFilterOperator.EQ. + operator (DatasetDraftFilterOperator | str | Unset): Default: DatasetDraftFilterOperator.EQ. """ value: bool name: Literal["draft"] | Unset = "draft" - operator: DatasetDraftFilterOperator | Unset = DatasetDraftFilterOperator.EQ + operator: DatasetDraftFilterOperator | str | Unset = DatasetDraftFilterOperator.EQ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -31,9 +31,13 @@ def to_dict(self) -> dict[str, Any]: name = self.name - operator: str | Unset = UNSET - if not isinstance(self.operator, Unset): + operator: str | Unset + if isinstance(self.operator, Unset): + operator = UNSET + elif isinstance(self.operator, DatasetDraftFilterOperator): operator = self.operator.value + else: + operator = self.operator field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -54,12 +58,22 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: if name != "draft" and not isinstance(name, Unset): raise ValueError(f"name must match const 'draft', got '{name}'") - _operator = d.pop("operator", UNSET) - operator: DatasetDraftFilterOperator | Unset - if isinstance(_operator, Unset): - operator = UNSET - else: - operator = DatasetDraftFilterOperator(_operator) + def _parse_operator(data: object) -> DatasetDraftFilterOperator | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = DatasetDraftFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(DatasetDraftFilterOperator | str | Unset, data) + + operator = _parse_operator(d.pop("operator", UNSET)) dataset_draft_filter = cls(value=value, name=name, operator=operator) diff --git a/src/splunk_ao/resources/models/dataset_id_filter.py b/src/splunk_ao/resources/models/dataset_id_filter.py index 8dcfc27e..00a76ee1 100644 --- a/src/splunk_ao/resources/models/dataset_id_filter.py +++ b/src/splunk_ao/resources/models/dataset_id_filter.py @@ -18,12 +18,12 @@ class DatasetIDFilter: Attributes: value (list[str] | str): name (Literal['id'] | Unset): Default: 'id'. - operator (DatasetIDFilterOperator | Unset): Default: DatasetIDFilterOperator.EQ. + operator (DatasetIDFilterOperator | str | Unset): Default: DatasetIDFilterOperator.EQ. """ value: list[str] | str name: Literal["id"] | Unset = "id" - operator: DatasetIDFilterOperator | Unset = DatasetIDFilterOperator.EQ + operator: DatasetIDFilterOperator | str | Unset = DatasetIDFilterOperator.EQ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -40,9 +40,13 @@ def to_dict(self) -> dict[str, Any]: name = self.name - operator: str | Unset = UNSET - if not isinstance(self.operator, Unset): + operator: str | Unset + if isinstance(self.operator, Unset): + operator = UNSET + elif isinstance(self.operator, DatasetIDFilterOperator): operator = self.operator.value + else: + operator = self.operator field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -84,12 +88,22 @@ def _parse_value_type_1_item(data: object) -> str: if name != "id" and not isinstance(name, Unset): raise ValueError(f"name must match const 'id', got '{name}'") - _operator = d.pop("operator", UNSET) - operator: DatasetIDFilterOperator | Unset - if isinstance(_operator, Unset): - operator = UNSET - else: - operator = DatasetIDFilterOperator(_operator) + def _parse_operator(data: object) -> DatasetIDFilterOperator | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = DatasetIDFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(DatasetIDFilterOperator | str | Unset, data) + + operator = _parse_operator(d.pop("operator", UNSET)) dataset_id_filter = cls(value=value, name=name, operator=operator) diff --git a/src/splunk_ao/resources/models/dataset_name_filter.py b/src/splunk_ao/resources/models/dataset_name_filter.py index d3cc8069..65b0e91b 100644 --- a/src/splunk_ao/resources/models/dataset_name_filter.py +++ b/src/splunk_ao/resources/models/dataset_name_filter.py @@ -16,20 +16,24 @@ class DatasetNameFilter: """ Attributes: - operator (DatasetNameFilterOperator): + operator (DatasetNameFilterOperator | str): value (list[str] | str): name (Literal['name'] | Unset): Default: 'name'. case_sensitive (bool | Unset): Default: True. """ - operator: DatasetNameFilterOperator + operator: DatasetNameFilterOperator | str value: list[str] | str name: Literal["name"] | Unset = "name" case_sensitive: bool | Unset = True additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, DatasetNameFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: list[str] | str if isinstance(self.value, list): @@ -55,7 +59,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = DatasetNameFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> DatasetNameFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = DatasetNameFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(DatasetNameFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> list[str] | str: try: diff --git a/src/splunk_ao/resources/models/experiment_group_name_filter.py b/src/splunk_ao/resources/models/experiment_group_name_filter.py index fb929bc4..408083cd 100644 --- a/src/splunk_ao/resources/models/experiment_group_name_filter.py +++ b/src/splunk_ao/resources/models/experiment_group_name_filter.py @@ -16,20 +16,24 @@ class ExperimentGroupNameFilter: """ Attributes: - operator (ExperimentGroupNameFilterOperator): + operator (ExperimentGroupNameFilterOperator | str): value (list[str] | str): name (Literal['experiment_group_name'] | Unset): Default: 'experiment_group_name'. case_sensitive (bool | Unset): Default: True. """ - operator: ExperimentGroupNameFilterOperator + operator: ExperimentGroupNameFilterOperator | str value: list[str] | str name: Literal["experiment_group_name"] | Unset = "experiment_group_name" case_sensitive: bool | Unset = True additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, ExperimentGroupNameFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: list[str] | str if isinstance(self.value, list): @@ -55,7 +59,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = ExperimentGroupNameFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> ExperimentGroupNameFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ExperimentGroupNameFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ExperimentGroupNameFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> list[str] | str: try: diff --git a/src/splunk_ao/resources/models/experiment_response.py b/src/splunk_ao/resources/models/experiment_response.py index e600130d..e8b561c3 100644 --- a/src/splunk_ao/resources/models/experiment_response.py +++ b/src/splunk_ao/resources/models/experiment_response.py @@ -35,9 +35,7 @@ class ExperimentResponse: Attributes: id (str): Galileo ID of the experiment project_id (str): Galileo ID of the project associated with this experiment - task_type (TaskType): Valid task types for modeling. - - We store these as ints instead of strings because we will be looking this up in the database frequently. + task_type (int | TaskType): created_at (datetime.datetime | Unset): Timestamp of the experiment's creation updated_at (datetime.datetime | None | Unset): Timestamp of the trace or span's last update name (str | Unset): Name of the experiment Default: ''. @@ -74,7 +72,7 @@ class ExperimentResponse: id: str project_id: str - task_type: TaskType + task_type: int | TaskType created_at: datetime.datetime | Unset = UNSET updated_at: datetime.datetime | None | Unset = UNSET name: str | Unset = "" @@ -117,7 +115,11 @@ def to_dict(self) -> dict[str, Any]: project_id = self.project_id - task_type = self.task_type.value + task_type: int + if isinstance(self.task_type, TaskType): + task_type = self.task_type.value + else: + task_type = self.task_type created_at: str | Unset = UNSET if not isinstance(self.created_at, Unset): @@ -352,7 +354,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: project_id = d.pop("project_id") - task_type = TaskType(d.pop("task_type")) + def _parse_task_type(data: object) -> int | TaskType: + try: + if not isinstance(data, int): + raise TypeError() + task_type_type_0 = TaskType(data) + + return task_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (int,): + raise TypeError("Unexpected value type for task_type") + return cast(int | TaskType, data) + + task_type = _parse_task_type(d.pop("task_type")) _created_at = d.pop("created_at", UNSET) created_at: datetime.datetime | Unset diff --git a/src/splunk_ao/resources/models/extended_agent_span_record.py b/src/splunk_ao/resources/models/extended_agent_span_record.py index cde71f19..469676c9 100644 --- a/src/splunk_ao/resources/models/extended_agent_span_record.py +++ b/src/splunk_ao/resources/models/extended_agent_span_record.py @@ -69,7 +69,7 @@ class ExtendedAgentSpanRecord: record annotations (ExtendedAgentSpanRecordAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (ExtendedAgentSpanRecordAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (ExtendedAgentSpanRecordAnnotationAgreement | Unset): Annotation agreement scores keyed by @@ -86,7 +86,7 @@ class ExtendedAgentSpanRecord: with this record is_complete (bool | Unset): Whether the parent trace is complete or not Default: True. step_number (int | None | Unset): Topological step number of the span. - agent_type (AgentType | Unset): + agent_type (AgentType | str | Unset): Agent type. """ id: str @@ -121,7 +121,7 @@ class ExtendedAgentSpanRecord: feedback_rating_info: ExtendedAgentSpanRecordFeedbackRatingInfo | Unset = UNSET annotations: ExtendedAgentSpanRecordAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: ExtendedAgentSpanRecordAnnotationAggregates | Unset = UNSET annotation_agreement: ExtendedAgentSpanRecordAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -133,7 +133,7 @@ class ExtendedAgentSpanRecord: files: ExtendedAgentSpanRecordFilesType0 | None | Unset = UNSET is_complete: bool | Unset = True step_number: int | None | Unset = UNSET - agent_type: AgentType | Unset = UNSET + agent_type: AgentType | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -349,7 +349,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -404,9 +408,13 @@ def to_dict(self) -> dict[str, Any]: else: step_number = self.step_number - agent_type: str | Unset = UNSET - if not isinstance(self.agent_type, Unset): + agent_type: str | Unset + if isinstance(self.agent_type, Unset): + agent_type = UNSET + elif isinstance(self.agent_type, AgentType): agent_type = self.agent_type.value + else: + agent_type = self.agent_type field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -906,11 +914,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) @@ -1109,12 +1131,22 @@ def _parse_step_number(data: object) -> int | None | Unset: step_number = _parse_step_number(d.pop("step_number", UNSET)) - _agent_type = d.pop("agent_type", UNSET) - agent_type: AgentType | Unset - if isinstance(_agent_type, Unset): - agent_type = UNSET - else: - agent_type = AgentType(_agent_type) + def _parse_agent_type(data: object) -> AgentType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + agent_type_type_0 = AgentType(data) + + return agent_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for agent_type") + return cast(AgentType | str | Unset, data) + + agent_type = _parse_agent_type(d.pop("agent_type", UNSET)) extended_agent_span_record = cls( id=id, diff --git a/src/splunk_ao/resources/models/extended_agent_span_record_with_children.py b/src/splunk_ao/resources/models/extended_agent_span_record_with_children.py index 8ea68b4e..a92fca00 100644 --- a/src/splunk_ao/resources/models/extended_agent_span_record_with_children.py +++ b/src/splunk_ao/resources/models/extended_agent_span_record_with_children.py @@ -95,7 +95,7 @@ class ExtendedAgentSpanRecordWithChildren: annotations (ExtendedAgentSpanRecordWithChildrenAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (ExtendedAgentSpanRecordWithChildrenAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (ExtendedAgentSpanRecordWithChildrenAnnotationAgreement | Unset): Annotation agreement @@ -112,7 +112,7 @@ class ExtendedAgentSpanRecordWithChildren: associated with this record is_complete (bool | Unset): Whether the parent trace is complete or not Default: True. step_number (int | None | Unset): Topological step number of the span. - agent_type (AgentType | Unset): + agent_type (AgentType | str | Unset): Agent type. """ id: str @@ -158,7 +158,7 @@ class ExtendedAgentSpanRecordWithChildren: feedback_rating_info: ExtendedAgentSpanRecordWithChildrenFeedbackRatingInfo | Unset = UNSET annotations: ExtendedAgentSpanRecordWithChildrenAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: ExtendedAgentSpanRecordWithChildrenAnnotationAggregates | Unset = UNSET annotation_agreement: ExtendedAgentSpanRecordWithChildrenAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -170,7 +170,7 @@ class ExtendedAgentSpanRecordWithChildren: files: ExtendedAgentSpanRecordWithChildrenFilesType0 | None | Unset = UNSET is_complete: bool | Unset = True step_number: int | None | Unset = UNSET - agent_type: AgentType | Unset = UNSET + agent_type: AgentType | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -414,7 +414,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -469,9 +473,13 @@ def to_dict(self) -> dict[str, Any]: else: step_number = self.step_number - agent_type: str | Unset = UNSET - if not isinstance(self.agent_type, Unset): + agent_type: str | Unset + if isinstance(self.agent_type, Unset): + agent_type = UNSET + elif isinstance(self.agent_type, AgentType): agent_type = self.agent_type.value + else: + agent_type = self.agent_type field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -1133,11 +1141,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) @@ -1340,12 +1362,22 @@ def _parse_step_number(data: object) -> int | None | Unset: step_number = _parse_step_number(d.pop("step_number", UNSET)) - _agent_type = d.pop("agent_type", UNSET) - agent_type: AgentType | Unset - if isinstance(_agent_type, Unset): - agent_type = UNSET - else: - agent_type = AgentType(_agent_type) + def _parse_agent_type(data: object) -> AgentType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + agent_type_type_0 = AgentType(data) + + return agent_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for agent_type") + return cast(AgentType | str | Unset, data) + + agent_type = _parse_agent_type(d.pop("agent_type", UNSET)) extended_agent_span_record_with_children = cls( id=id, diff --git a/src/splunk_ao/resources/models/extended_control_span_record.py b/src/splunk_ao/resources/models/extended_control_span_record.py index d281e54e..8d9c5c81 100644 --- a/src/splunk_ao/resources/models/extended_control_span_record.py +++ b/src/splunk_ao/resources/models/extended_control_span_record.py @@ -69,7 +69,7 @@ class ExtendedControlSpanRecord: record annotations (ExtendedControlSpanRecordAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (ExtendedControlSpanRecordAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (ExtendedControlSpanRecordAnnotationAgreement | Unset): Annotation agreement scores keyed @@ -88,9 +88,9 @@ class ExtendedControlSpanRecord: step_number (int | None | Unset): Topological step number of the span. control_id (int | None | Unset): Identifier of the control definition that produced this span. agent_name (None | str | Unset): Normalized agent name associated with this control execution. - check_stage (ControlCheckStage | None | Unset): Execution stage where the control ran, typically 'pre' or + check_stage (ControlCheckStage | None | str | Unset): Execution stage where the control ran, typically 'pre' or 'post'. - applies_to (ControlAppliesTo | None | Unset): Parent execution type the control applied to, for example + applies_to (ControlAppliesTo | None | str | Unset): Parent execution type the control applied to, for example 'llm_call' or 'tool_call'. evaluator_name (None | str | Unset): Representative evaluator name for this control span. For composite controls, this is the primary evaluator chosen for observability identity. @@ -126,7 +126,7 @@ class ExtendedControlSpanRecord: feedback_rating_info: ExtendedControlSpanRecordFeedbackRatingInfo | Unset = UNSET annotations: ExtendedControlSpanRecordAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: ExtendedControlSpanRecordAnnotationAggregates | Unset = UNSET annotation_agreement: ExtendedControlSpanRecordAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -140,8 +140,8 @@ class ExtendedControlSpanRecord: step_number: int | None | Unset = UNSET control_id: int | None | Unset = UNSET agent_name: None | str | Unset = UNSET - check_stage: ControlCheckStage | None | Unset = UNSET - applies_to: ControlAppliesTo | None | Unset = UNSET + check_stage: ControlCheckStage | None | str | Unset = UNSET + applies_to: ControlAppliesTo | None | str | Unset = UNSET evaluator_name: None | str | Unset = UNSET selector_path: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -320,7 +320,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -816,11 +820,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) @@ -925,7 +943,7 @@ def _parse_agent_name(data: object) -> None | str | Unset: agent_name = _parse_agent_name(d.pop("agent_name", UNSET)) - def _parse_check_stage(data: object) -> ControlCheckStage | None | Unset: + def _parse_check_stage(data: object) -> ControlCheckStage | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -938,11 +956,13 @@ def _parse_check_stage(data: object) -> ControlCheckStage | None | Unset: return check_stage_type_0 except: # noqa: E722 pass - return cast(ControlCheckStage | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for check_stage") + return cast(ControlCheckStage | None | str | Unset, data) check_stage = _parse_check_stage(d.pop("check_stage", UNSET)) - def _parse_applies_to(data: object) -> ControlAppliesTo | None | Unset: + def _parse_applies_to(data: object) -> ControlAppliesTo | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -955,7 +975,9 @@ def _parse_applies_to(data: object) -> ControlAppliesTo | None | Unset: return applies_to_type_0 except: # noqa: E722 pass - return cast(ControlAppliesTo | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for applies_to") + return cast(ControlAppliesTo | None | str | Unset, data) applies_to = _parse_applies_to(d.pop("applies_to", UNSET)) diff --git a/src/splunk_ao/resources/models/extended_llm_span_record.py b/src/splunk_ao/resources/models/extended_llm_span_record.py index ec0e68f5..42f1f3f0 100644 --- a/src/splunk_ao/resources/models/extended_llm_span_record.py +++ b/src/splunk_ao/resources/models/extended_llm_span_record.py @@ -69,7 +69,7 @@ class ExtendedLlmSpanRecord: record annotations (ExtendedLlmSpanRecordAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (ExtendedLlmSpanRecordAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (ExtendedLlmSpanRecordAnnotationAgreement | Unset): Annotation agreement scores keyed by @@ -124,7 +124,7 @@ class ExtendedLlmSpanRecord: feedback_rating_info: ExtendedLlmSpanRecordFeedbackRatingInfo | Unset = UNSET annotations: ExtendedLlmSpanRecordAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: ExtendedLlmSpanRecordAnnotationAggregates | Unset = UNSET annotation_agreement: ExtendedLlmSpanRecordAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -305,7 +305,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -737,11 +741,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) diff --git a/src/splunk_ao/resources/models/extended_retriever_span_record.py b/src/splunk_ao/resources/models/extended_retriever_span_record.py index 96df0a8f..c9e03c3f 100644 --- a/src/splunk_ao/resources/models/extended_retriever_span_record.py +++ b/src/splunk_ao/resources/models/extended_retriever_span_record.py @@ -66,7 +66,7 @@ class ExtendedRetrieverSpanRecord: the record annotations (ExtendedRetrieverSpanRecordAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (ExtendedRetrieverSpanRecordAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (ExtendedRetrieverSpanRecordAnnotationAgreement | Unset): Annotation agreement scores keyed @@ -113,7 +113,7 @@ class ExtendedRetrieverSpanRecord: feedback_rating_info: ExtendedRetrieverSpanRecordFeedbackRatingInfo | Unset = UNSET annotations: ExtendedRetrieverSpanRecordAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: ExtendedRetrieverSpanRecordAnnotationAggregates | Unset = UNSET annotation_agreement: ExtendedRetrieverSpanRecordAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -266,7 +266,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -615,11 +619,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) diff --git a/src/splunk_ao/resources/models/extended_retriever_span_record_with_children.py b/src/splunk_ao/resources/models/extended_retriever_span_record_with_children.py index 5a2c16dc..2a48b0da 100644 --- a/src/splunk_ao/resources/models/extended_retriever_span_record_with_children.py +++ b/src/splunk_ao/resources/models/extended_retriever_span_record_with_children.py @@ -86,7 +86,7 @@ class ExtendedRetrieverSpanRecordWithChildren: annotations (ExtendedRetrieverSpanRecordWithChildrenAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (ExtendedRetrieverSpanRecordWithChildrenAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (ExtendedRetrieverSpanRecordWithChildrenAnnotationAgreement | Unset): Annotation agreement @@ -144,7 +144,7 @@ class ExtendedRetrieverSpanRecordWithChildren: feedback_rating_info: ExtendedRetrieverSpanRecordWithChildrenFeedbackRatingInfo | Unset = UNSET annotations: ExtendedRetrieverSpanRecordWithChildrenAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: ExtendedRetrieverSpanRecordWithChildrenAnnotationAggregates | Unset = UNSET annotation_agreement: ExtendedRetrieverSpanRecordWithChildrenAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -323,7 +323,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -828,11 +832,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) diff --git a/src/splunk_ao/resources/models/extended_session_record.py b/src/splunk_ao/resources/models/extended_session_record.py index ca8232aa..334a9f57 100644 --- a/src/splunk_ao/resources/models/extended_session_record.py +++ b/src/splunk_ao/resources/models/extended_session_record.py @@ -66,7 +66,7 @@ class ExtendedSessionRecord: record annotations (ExtendedSessionRecordAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (ExtendedSessionRecordAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (ExtendedSessionRecordAnnotationAgreement | Unset): Annotation agreement scores keyed by @@ -116,7 +116,7 @@ class ExtendedSessionRecord: feedback_rating_info: ExtendedSessionRecordFeedbackRatingInfo | Unset = UNSET annotations: ExtendedSessionRecordAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: ExtendedSessionRecordAnnotationAggregates | Unset = UNSET annotation_agreement: ExtendedSessionRecordAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -345,7 +345,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -903,11 +907,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) diff --git a/src/splunk_ao/resources/models/extended_session_record_with_children.py b/src/splunk_ao/resources/models/extended_session_record_with_children.py index 20fcbd17..5b308fe2 100644 --- a/src/splunk_ao/resources/models/extended_session_record_with_children.py +++ b/src/splunk_ao/resources/models/extended_session_record_with_children.py @@ -82,7 +82,7 @@ class ExtendedSessionRecordWithChildren: annotations (ExtendedSessionRecordWithChildrenAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (ExtendedSessionRecordWithChildrenAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (ExtendedSessionRecordWithChildrenAnnotationAgreement | Unset): Annotation agreement scores @@ -133,7 +133,7 @@ class ExtendedSessionRecordWithChildren: feedback_rating_info: ExtendedSessionRecordWithChildrenFeedbackRatingInfo | Unset = UNSET annotations: ExtendedSessionRecordWithChildrenAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: ExtendedSessionRecordWithChildrenAnnotationAggregates | Unset = UNSET annotation_agreement: ExtendedSessionRecordWithChildrenAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -373,7 +373,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -959,11 +963,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) diff --git a/src/splunk_ao/resources/models/extended_tool_span_record.py b/src/splunk_ao/resources/models/extended_tool_span_record.py index faaa2e75..063f8220 100644 --- a/src/splunk_ao/resources/models/extended_tool_span_record.py +++ b/src/splunk_ao/resources/models/extended_tool_span_record.py @@ -59,7 +59,7 @@ class ExtendedToolSpanRecord: record annotations (ExtendedToolSpanRecordAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (ExtendedToolSpanRecordAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (ExtendedToolSpanRecordAnnotationAgreement | Unset): Annotation agreement scores keyed by @@ -107,7 +107,7 @@ class ExtendedToolSpanRecord: feedback_rating_info: ExtendedToolSpanRecordFeedbackRatingInfo | Unset = UNSET annotations: ExtendedToolSpanRecordAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: ExtendedToolSpanRecordAnnotationAggregates | Unset = UNSET annotation_agreement: ExtendedToolSpanRecordAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -252,7 +252,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -587,11 +591,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) diff --git a/src/splunk_ao/resources/models/extended_tool_span_record_with_children.py b/src/splunk_ao/resources/models/extended_tool_span_record_with_children.py index d6262d38..95d8530b 100644 --- a/src/splunk_ao/resources/models/extended_tool_span_record_with_children.py +++ b/src/splunk_ao/resources/models/extended_tool_span_record_with_children.py @@ -85,7 +85,7 @@ class ExtendedToolSpanRecordWithChildren: annotations (ExtendedToolSpanRecordWithChildrenAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (ExtendedToolSpanRecordWithChildrenAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (ExtendedToolSpanRecordWithChildrenAnnotationAgreement | Unset): Annotation agreement @@ -144,7 +144,7 @@ class ExtendedToolSpanRecordWithChildren: feedback_rating_info: ExtendedToolSpanRecordWithChildrenFeedbackRatingInfo | Unset = UNSET annotations: ExtendedToolSpanRecordWithChildrenAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: ExtendedToolSpanRecordWithChildrenAnnotationAggregates | Unset = UNSET annotation_agreement: ExtendedToolSpanRecordWithChildrenAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -317,7 +317,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -814,11 +818,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) diff --git a/src/splunk_ao/resources/models/extended_trace_record.py b/src/splunk_ao/resources/models/extended_trace_record.py index de67a214..fef507ea 100644 --- a/src/splunk_ao/resources/models/extended_trace_record.py +++ b/src/splunk_ao/resources/models/extended_trace_record.py @@ -61,7 +61,7 @@ class ExtendedTraceRecord: feedback_rating_info (ExtendedTraceRecordFeedbackRatingInfo | Unset): Feedback information related to the record annotations (ExtendedTraceRecordAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (ExtendedTraceRecordAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (ExtendedTraceRecordAnnotationAgreement | Unset): Annotation agreement scores keyed by @@ -107,7 +107,7 @@ class ExtendedTraceRecord: feedback_rating_info: ExtendedTraceRecordFeedbackRatingInfo | Unset = UNSET annotations: ExtendedTraceRecordAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: ExtendedTraceRecordAnnotationAggregates | Unset = UNSET annotation_agreement: ExtendedTraceRecordAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -294,7 +294,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -733,11 +737,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) diff --git a/src/splunk_ao/resources/models/extended_trace_record_with_children.py b/src/splunk_ao/resources/models/extended_trace_record_with_children.py index da1bd205..46ce6843 100644 --- a/src/splunk_ao/resources/models/extended_trace_record_with_children.py +++ b/src/splunk_ao/resources/models/extended_trace_record_with_children.py @@ -83,7 +83,7 @@ class ExtendedTraceRecordWithChildren: annotations (ExtendedTraceRecordWithChildrenAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (ExtendedTraceRecordWithChildrenAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (ExtendedTraceRecordWithChildrenAnnotationAgreement | Unset): Annotation agreement scores @@ -140,7 +140,7 @@ class ExtendedTraceRecordWithChildren: feedback_rating_info: ExtendedTraceRecordWithChildrenFeedbackRatingInfo | Unset = UNSET annotations: ExtendedTraceRecordWithChildrenAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: ExtendedTraceRecordWithChildrenAnnotationAggregates | Unset = UNSET annotation_agreement: ExtendedTraceRecordWithChildrenAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -354,7 +354,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -952,11 +956,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) diff --git a/src/splunk_ao/resources/models/extended_workflow_span_record.py b/src/splunk_ao/resources/models/extended_workflow_span_record.py index 5a0733aa..5f93e829 100644 --- a/src/splunk_ao/resources/models/extended_workflow_span_record.py +++ b/src/splunk_ao/resources/models/extended_workflow_span_record.py @@ -72,7 +72,7 @@ class ExtendedWorkflowSpanRecord: record annotations (ExtendedWorkflowSpanRecordAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (ExtendedWorkflowSpanRecordAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (ExtendedWorkflowSpanRecordAnnotationAgreement | Unset): Annotation agreement scores keyed @@ -123,7 +123,7 @@ class ExtendedWorkflowSpanRecord: feedback_rating_info: ExtendedWorkflowSpanRecordFeedbackRatingInfo | Unset = UNSET annotations: ExtendedWorkflowSpanRecordAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: ExtendedWorkflowSpanRecordAnnotationAggregates | Unset = UNSET annotation_agreement: ExtendedWorkflowSpanRecordAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -350,7 +350,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -905,11 +909,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) diff --git a/src/splunk_ao/resources/models/extended_workflow_span_record_with_children.py b/src/splunk_ao/resources/models/extended_workflow_span_record_with_children.py index 6fb37e26..61e51f3e 100644 --- a/src/splunk_ao/resources/models/extended_workflow_span_record_with_children.py +++ b/src/splunk_ao/resources/models/extended_workflow_span_record_with_children.py @@ -94,7 +94,7 @@ class ExtendedWorkflowSpanRecordWithChildren: annotations (ExtendedWorkflowSpanRecordWithChildrenAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (ExtendedWorkflowSpanRecordWithChildrenAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (ExtendedWorkflowSpanRecordWithChildrenAnnotationAgreement | Unset): Annotation agreement @@ -156,7 +156,7 @@ class ExtendedWorkflowSpanRecordWithChildren: feedback_rating_info: ExtendedWorkflowSpanRecordWithChildrenFeedbackRatingInfo | Unset = UNSET annotations: ExtendedWorkflowSpanRecordWithChildrenAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: ExtendedWorkflowSpanRecordWithChildrenAnnotationAggregates | Unset = UNSET annotation_agreement: ExtendedWorkflowSpanRecordWithChildrenAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -411,7 +411,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -1124,11 +1128,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) diff --git a/src/splunk_ao/resources/models/feedback_rating_info.py b/src/splunk_ao/resources/models/feedback_rating_info.py index 6a68c71e..488b5d97 100644 --- a/src/splunk_ao/resources/models/feedback_rating_info.py +++ b/src/splunk_ao/resources/models/feedback_rating_info.py @@ -15,18 +15,22 @@ class FeedbackRatingInfo: """ Attributes: - feedback_type (FeedbackType): + feedback_type (FeedbackType | str): value (bool | int | list[str] | str): explanation (None | str): """ - feedback_type: FeedbackType + feedback_type: FeedbackType | str value: bool | int | list[str] | str explanation: None | str additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - feedback_type = self.feedback_type.value + feedback_type: str + if isinstance(self.feedback_type, FeedbackType): + feedback_type = self.feedback_type.value + else: + feedback_type = self.feedback_type value: bool | int | list[str] | str if isinstance(self.value, list): @@ -47,7 +51,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - feedback_type = FeedbackType(d.pop("feedback_type")) + + def _parse_feedback_type(data: object) -> FeedbackType | str: + try: + if not isinstance(data, str): + raise TypeError() + feedback_type_type_0 = FeedbackType(data) + + return feedback_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for feedback_type") + return cast(FeedbackType | str, data) + + feedback_type = _parse_feedback_type(d.pop("feedback_type")) def _parse_value(data: object) -> bool | int | list[str] | str: try: diff --git a/src/splunk_ao/resources/models/file_metadata.py b/src/splunk_ao/resources/models/file_metadata.py index f0629595..da52d0e3 100644 --- a/src/splunk_ao/resources/models/file_metadata.py +++ b/src/splunk_ao/resources/models/file_metadata.py @@ -24,9 +24,9 @@ class FileMetadata: Attributes: file_id (str): - modality (ContentModality): Classification of content modality - source (FileSource): Source of the file data. - status (FileStatus): Processing status of the file. + modality (ContentModality | str): + source (FileSource | str): + status (FileStatus | str): content_type (None | str | Unset): url (None | str | Unset): Presigned S3 URL or external URL url_expires_at (datetime.datetime | None | Unset): Expiration time @@ -35,9 +35,9 @@ class FileMetadata: """ file_id: str - modality: ContentModality - source: FileSource - status: FileStatus + modality: ContentModality | str + source: FileSource | str + status: FileStatus | str content_type: None | str | Unset = UNSET url: None | str | Unset = UNSET url_expires_at: datetime.datetime | None | Unset = UNSET @@ -48,11 +48,23 @@ class FileMetadata: def to_dict(self) -> dict[str, Any]: file_id = self.file_id - modality = self.modality.value + modality: str + if isinstance(self.modality, ContentModality): + modality = self.modality.value + else: + modality = self.modality - source = self.source.value + source: str + if isinstance(self.source, FileSource): + source = self.source.value + else: + source = self.source - status = self.status.value + status: str + if isinstance(self.status, FileStatus): + status = self.status.value + else: + status = self.status content_type: None | str | Unset if isinstance(self.content_type, Unset): @@ -107,11 +119,50 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) file_id = d.pop("file_id") - modality = ContentModality(d.pop("modality")) + def _parse_modality(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + modality_type_0 = ContentModality(data) + + return modality_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for modality") + return cast(ContentModality | str, data) + + modality = _parse_modality(d.pop("modality")) + + def _parse_source(data: object) -> FileSource | str: + try: + if not isinstance(data, str): + raise TypeError() + source_type_0 = FileSource(data) + + return source_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for source") + return cast(FileSource | str, data) + + source = _parse_source(d.pop("source")) - source = FileSource(d.pop("source")) + def _parse_status(data: object) -> FileStatus | str: + try: + if not isinstance(data, str): + raise TypeError() + status_type_0 = FileStatus(data) + + return status_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for status") + return cast(FileStatus | str, data) - status = FileStatus(d.pop("status")) + status = _parse_status(d.pop("status")) def _parse_content_type(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/fine_tuned_scorer_response.py b/src/splunk_ao/resources/models/fine_tuned_scorer_response.py index 753be643..fab410ce 100644 --- a/src/splunk_ao/resources/models/fine_tuned_scorer_response.py +++ b/src/splunk_ao/resources/models/fine_tuned_scorer_response.py @@ -36,12 +36,12 @@ class FineTunedScorerResponse: updated_at (datetime.datetime): created_by (str): lora_weights_path (None | str | Unset): - luna_input_type (LunaInputTypeEnum | None | Unset): - luna_output_type (LunaOutputTypeEnum | None | Unset): + luna_input_type (LunaInputTypeEnum | None | str | Unset): + luna_output_type (LunaOutputTypeEnum | None | str | Unset): class_name_to_vocab_ix (FineTunedScorerResponseClassNameToVocabIxType0 | FineTunedScorerResponseClassNameToVocabIxType1 | None | Unset): - executor (CoreScorerName | None | Unset): Executor pipeline. Defaults to finetuned scorer pipeline but can run - custom galileo score pipelines. + executor (CoreScorerName | None | str | Unset): Executor pipeline. Defaults to finetuned scorer pipeline but can + run custom galileo score pipelines. """ id: str @@ -52,12 +52,12 @@ class FineTunedScorerResponse: updated_at: datetime.datetime created_by: str lora_weights_path: None | str | Unset = UNSET - luna_input_type: LunaInputTypeEnum | None | Unset = UNSET - luna_output_type: LunaOutputTypeEnum | None | Unset = UNSET + luna_input_type: LunaInputTypeEnum | None | str | Unset = UNSET + luna_output_type: LunaOutputTypeEnum | None | str | Unset = UNSET class_name_to_vocab_ix: ( FineTunedScorerResponseClassNameToVocabIxType0 | FineTunedScorerResponseClassNameToVocabIxType1 | None | Unset ) = UNSET - executor: CoreScorerName | None | Unset = UNSET + executor: CoreScorerName | None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -181,7 +181,7 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: lora_weights_path = _parse_lora_weights_path(d.pop("lora_weights_path", UNSET)) - def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: + def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -194,11 +194,13 @@ def _parse_luna_input_type(data: object) -> LunaInputTypeEnum | None | Unset: return luna_input_type_type_0 except: # noqa: E722 pass - return cast(LunaInputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_input_type") + return cast(LunaInputTypeEnum | None | str | Unset, data) luna_input_type = _parse_luna_input_type(d.pop("luna_input_type", UNSET)) - def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: + def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -211,7 +213,9 @@ def _parse_luna_output_type(data: object) -> LunaOutputTypeEnum | None | Unset: return luna_output_type_type_0 except: # noqa: E722 pass - return cast(LunaOutputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for luna_output_type") + return cast(LunaOutputTypeEnum | None | str | Unset, data) luna_output_type = _parse_luna_output_type(d.pop("luna_output_type", UNSET)) @@ -253,7 +257,7 @@ def _parse_class_name_to_vocab_ix( class_name_to_vocab_ix = _parse_class_name_to_vocab_ix(d.pop("class_name_to_vocab_ix", UNSET)) - def _parse_executor(data: object) -> CoreScorerName | None | Unset: + def _parse_executor(data: object) -> CoreScorerName | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -266,7 +270,9 @@ def _parse_executor(data: object) -> CoreScorerName | None | Unset: return executor_type_0 except: # noqa: E722 pass - return cast(CoreScorerName | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for executor") + return cast(CoreScorerName | None | str | Unset, data) executor = _parse_executor(d.pop("executor", UNSET)) diff --git a/src/splunk_ao/resources/models/generated_scorer_configuration.py b/src/splunk_ao/resources/models/generated_scorer_configuration.py index 4d2ee990..d4b5d6c6 100644 --- a/src/splunk_ao/resources/models/generated_scorer_configuration.py +++ b/src/splunk_ao/resources/models/generated_scorer_configuration.py @@ -19,21 +19,21 @@ class GeneratedScorerConfiguration: Attributes: model_alias (str | Unset): Default: 'gpt-4.1-mini'. num_judges (int | Unset): Default: 3. - output_type (OutputTypeEnum | Unset): Enumeration of output types. + output_type (OutputTypeEnum | str | Unset): Output type of the generated scorer. scoreable_node_types (list[str] | Unset): Types of nodes that can be scored by this scorer. cot_enabled (bool | Unset): Whether chain of thought is enabled for this scorer. Default: False. ground_truth (bool | Unset): Whether ground truth is enabled for this scorer. Default: False. - multimodal_capabilities (list[MultimodalCapability] | None | Unset): Multimodal capabilities required by this - scorer. + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): Multimodal capabilities required by + this scorer. """ model_alias: str | Unset = "gpt-4.1-mini" num_judges: int | Unset = 3 - output_type: OutputTypeEnum | Unset = UNSET + output_type: OutputTypeEnum | str | Unset = UNSET scoreable_node_types: list[str] | Unset = UNSET cot_enabled: bool | Unset = False ground_truth: bool | Unset = False - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -41,9 +41,13 @@ def to_dict(self) -> dict[str, Any]: num_judges = self.num_judges - output_type: str | Unset = UNSET - if not isinstance(self.output_type, Unset): + output_type: str | Unset + if isinstance(self.output_type, Unset): + output_type = UNSET + elif isinstance(self.output_type, OutputTypeEnum): output_type = self.output_type.value + else: + output_type = self.output_type scoreable_node_types: list[str] | Unset = UNSET if not isinstance(self.scoreable_node_types, Unset): @@ -59,7 +63,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -92,12 +100,22 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: num_judges = d.pop("num_judges", UNSET) - _output_type = d.pop("output_type", UNSET) - output_type: OutputTypeEnum | Unset - if isinstance(_output_type, Unset): - output_type = UNSET - else: - output_type = OutputTypeEnum(_output_type) + def _parse_output_type(data: object) -> OutputTypeEnum | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + output_type_type_0 = OutputTypeEnum(data) + + return output_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(OutputTypeEnum | str | Unset, data) + + output_type = _parse_output_type(d.pop("output_type", UNSET)) scoreable_node_types = cast(list[str], d.pop("scoreable_node_types", UNSET)) @@ -105,7 +123,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: ground_truth = d.pop("ground_truth", UNSET) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -116,14 +134,30 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) diff --git a/src/splunk_ao/resources/models/generated_scorer_response.py b/src/splunk_ao/resources/models/generated_scorer_response.py index 7dd95d75..6d20868e 100644 --- a/src/splunk_ao/resources/models/generated_scorer_response.py +++ b/src/splunk_ao/resources/models/generated_scorer_response.py @@ -29,7 +29,7 @@ class GeneratedScorerResponse: created_by (str): created_at (datetime.datetime): updated_at (datetime.datetime): - scoreable_node_types (list[NodeType] | None): + scoreable_node_types (list[NodeType | str] | None): scorer_configuration (GeneratedScorerConfiguration): instructions (None | str | Unset): user_prompt (None | str | Unset): @@ -41,7 +41,7 @@ class GeneratedScorerResponse: created_by: str created_at: datetime.datetime updated_at: datetime.datetime - scoreable_node_types: list[NodeType] | None + scoreable_node_types: list[NodeType | str] | None scorer_configuration: GeneratedScorerConfiguration instructions: None | str | Unset = UNSET user_prompt: None | str | Unset = UNSET @@ -64,7 +64,11 @@ def to_dict(self) -> dict[str, Any]: if isinstance(self.scoreable_node_types, list): scoreable_node_types = [] for scoreable_node_types_type_0_item_data in self.scoreable_node_types: - scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + scoreable_node_types_type_0_item: str + if isinstance(scoreable_node_types_type_0_item_data, NodeType): + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data.value + else: + scoreable_node_types_type_0_item = scoreable_node_types_type_0_item_data scoreable_node_types.append(scoreable_node_types_type_0_item) else: @@ -123,7 +127,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: updated_at = datetime.datetime.fromisoformat(d.pop("updated_at")) - def _parse_scoreable_node_types(data: object) -> list[NodeType] | None: + def _parse_scoreable_node_types(data: object) -> list[NodeType | str] | None: if data is None: return data try: @@ -132,14 +136,30 @@ def _parse_scoreable_node_types(data: object) -> list[NodeType] | None: scoreable_node_types_type_0 = [] _scoreable_node_types_type_0 = data for scoreable_node_types_type_0_item_data in _scoreable_node_types_type_0: - scoreable_node_types_type_0_item = NodeType(scoreable_node_types_type_0_item_data) + + def _parse_scoreable_node_types_type_0_item(data: object) -> NodeType | str: + try: + if not isinstance(data, str): + raise TypeError() + scoreable_node_types_type_0_item_type_0 = NodeType(data) + + return scoreable_node_types_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scoreable_node_types_type_0_item") + return cast(NodeType | str, data) + + scoreable_node_types_type_0_item = _parse_scoreable_node_types_type_0_item( + scoreable_node_types_type_0_item_data + ) scoreable_node_types_type_0.append(scoreable_node_types_type_0_item) return scoreable_node_types_type_0 except: # noqa: E722 pass - return cast(list[NodeType] | None, data) + return cast(list[NodeType | str] | None, data) scoreable_node_types = _parse_scoreable_node_types(d.pop("scoreable_node_types")) diff --git a/src/splunk_ao/resources/models/group_collaborator.py b/src/splunk_ao/resources/models/group_collaborator.py index 038e4a80..39e9997b 100644 --- a/src/splunk_ao/resources/models/group_collaborator.py +++ b/src/splunk_ao/resources/models/group_collaborator.py @@ -2,7 +2,7 @@ import datetime from collections.abc import Mapping -from typing import TYPE_CHECKING, Any, TypeVar +from typing import TYPE_CHECKING, Any, TypeVar, cast from attrs import define as _attrs_define from attrs import field as _attrs_field @@ -22,7 +22,7 @@ class GroupCollaborator: """ Attributes: id (str): - role (CollaboratorRole): + role (CollaboratorRole | str): created_at (datetime.datetime): group_id (str): group_name (str): @@ -30,7 +30,7 @@ class GroupCollaborator: """ id: str - role: CollaboratorRole + role: CollaboratorRole | str created_at: datetime.datetime group_id: str group_name: str @@ -40,7 +40,11 @@ class GroupCollaborator: def to_dict(self) -> dict[str, Any]: id = self.id - role = self.role.value + role: str + if isinstance(self.role, CollaboratorRole): + role = self.role.value + else: + role = self.role created_at = self.created_at.isoformat() @@ -72,7 +76,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) id = d.pop("id") - role = CollaboratorRole(d.pop("role")) + def _parse_role(data: object) -> CollaboratorRole | str: + try: + if not isinstance(data, str): + raise TypeError() + role_type_0 = CollaboratorRole(data) + + return role_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for role") + return cast(CollaboratorRole | str, data) + + role = _parse_role(d.pop("role")) created_at = datetime.datetime.fromisoformat(d.pop("created_at")) diff --git a/src/splunk_ao/resources/models/group_collaborator_create.py b/src/splunk_ao/resources/models/group_collaborator_create.py index a5273df8..a172e39f 100644 --- a/src/splunk_ao/resources/models/group_collaborator_create.py +++ b/src/splunk_ao/resources/models/group_collaborator_create.py @@ -1,7 +1,7 @@ from __future__ import annotations from collections.abc import Mapping -from typing import Any, TypeVar +from typing import Any, TypeVar, cast from attrs import define as _attrs_define from attrs import field as _attrs_field @@ -17,19 +17,23 @@ class GroupCollaboratorCreate: """ Attributes: group_id (str): - role (CollaboratorRole | Unset): + role (CollaboratorRole | str | Unset): """ group_id: str - role: CollaboratorRole | Unset = UNSET + role: CollaboratorRole | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: group_id = self.group_id - role: str | Unset = UNSET - if not isinstance(self.role, Unset): + role: str | Unset + if isinstance(self.role, Unset): + role = UNSET + elif isinstance(self.role, CollaboratorRole): role = self.role.value + else: + role = self.role field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -44,12 +48,22 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) group_id = d.pop("group_id") - _role = d.pop("role", UNSET) - role: CollaboratorRole | Unset - if isinstance(_role, Unset): - role = UNSET - else: - role = CollaboratorRole(_role) + def _parse_role(data: object) -> CollaboratorRole | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + role_type_0 = CollaboratorRole(data) + + return role_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for role") + return cast(CollaboratorRole | str | Unset, data) + + role = _parse_role(d.pop("role", UNSET)) group_collaborator_create = cls(group_id=group_id, role=role) diff --git a/src/splunk_ao/resources/models/health_score_result.py b/src/splunk_ao/resources/models/health_score_result.py index 07b4e906..0f9861e2 100644 --- a/src/splunk_ao/resources/models/health_score_result.py +++ b/src/splunk_ao/resources/models/health_score_result.py @@ -19,7 +19,7 @@ class HealthScoreResult: """ Attributes: - health_score_type (HealthScoreType | None): + health_score_type (HealthScoreType | None | str): value (float | None): Primary health score metric value, or None if no valid rows. skipped_rows (int): Rows excluded because MGT or score could not be parsed. secondary (HealthScoreResultSecondary): Secondary metrics (MAE, RMSE, R², per-class F1, etc.). @@ -28,7 +28,7 @@ class HealthScoreResult: joined_rows (int): Rows with both a score and a MGT value (used for computation). """ - health_score_type: HealthScoreType | None + health_score_type: HealthScoreType | None | str value: float | None skipped_rows: int secondary: HealthScoreResultSecondary @@ -79,7 +79,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - def _parse_health_score_type(data: object) -> HealthScoreType | None: + def _parse_health_score_type(data: object) -> HealthScoreType | None | str: if data is None: return data try: @@ -90,7 +90,9 @@ def _parse_health_score_type(data: object) -> HealthScoreType | None: return health_score_type_type_0 except: # noqa: E722 pass - return cast(HealthScoreType | None, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for health_score_type") + return cast(HealthScoreType | None | str, data) health_score_type = _parse_health_score_type(d.pop("health_score_type")) diff --git a/src/splunk_ao/resources/models/histogram.py b/src/splunk_ao/resources/models/histogram.py index 6d2bd8ab..c70a539c 100644 --- a/src/splunk_ao/resources/models/histogram.py +++ b/src/splunk_ao/resources/models/histogram.py @@ -19,20 +19,24 @@ class Histogram: """ Attributes: - strategy (HistogramStrategy): + strategy (HistogramStrategy | str): The binning strategy used to create this histogram edges (list[float]): List of bin edges (monotonically increasing, length = number of buckets + 1) buckets (list[HistogramBucket]): List of histogram buckets containing the binned data total (int): Total number of data points in the histogram """ - strategy: HistogramStrategy + strategy: HistogramStrategy | str edges: list[float] buckets: list[HistogramBucket] total: int additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - strategy = self.strategy.value + strategy: str + if isinstance(self.strategy, HistogramStrategy): + strategy = self.strategy.value + else: + strategy = self.strategy edges = self.edges @@ -54,7 +58,21 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: from ..models.histogram_bucket import HistogramBucket d = dict(src_dict) - strategy = HistogramStrategy(d.pop("strategy")) + + def _parse_strategy(data: object) -> HistogramStrategy | str: + try: + if not isinstance(data, str): + raise TypeError() + strategy_type_0 = HistogramStrategy(data) + + return strategy_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for strategy") + return cast(HistogramStrategy | str, data) + + strategy = _parse_strategy(d.pop("strategy")) edges = cast(list[float], d.pop("edges")) diff --git a/src/splunk_ao/resources/models/image_generation_event.py b/src/splunk_ao/resources/models/image_generation_event.py index d868e9e0..3fa368fd 100644 --- a/src/splunk_ao/resources/models/image_generation_event.py +++ b/src/splunk_ao/resources/models/image_generation_event.py @@ -24,7 +24,7 @@ class ImageGenerationEvent: Attributes: type_ (Literal['image_generation'] | Unset): Default: 'image_generation'. id (None | str | Unset): Unique identifier for the event - status (EventStatus | None | Unset): Status of the event + status (EventStatus | None | str | Unset): Status of the event metadata (ImageGenerationEventMetadataType0 | None | Unset): Provider-specific metadata and additional fields error_message (None | str | Unset): Error message if the event failed prompt (None | str | Unset): The prompt used for image generation @@ -34,7 +34,7 @@ class ImageGenerationEvent: type_: Literal["image_generation"] | Unset = "image_generation" id: None | str | Unset = UNSET - status: EventStatus | None | Unset = UNSET + status: EventStatus | None | str | Unset = UNSET metadata: ImageGenerationEventMetadataType0 | None | Unset = UNSET error_message: None | str | Unset = UNSET prompt: None | str | Unset = UNSET @@ -140,7 +140,7 @@ def _parse_id(data: object) -> None | str | Unset: id = _parse_id(d.pop("id", UNSET)) - def _parse_status(data: object) -> EventStatus | None | Unset: + def _parse_status(data: object) -> EventStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -153,7 +153,9 @@ def _parse_status(data: object) -> EventStatus | None | Unset: return status_type_0 except: # noqa: E722 pass - return cast(EventStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for status") + return cast(EventStatus | None | str | Unset, data) status = _parse_status(d.pop("status", UNSET)) diff --git a/src/splunk_ao/resources/models/input_sexist_scorer.py b/src/splunk_ao/resources/models/input_sexist_scorer.py index 59077890..8b0d20cb 100644 --- a/src/splunk_ao/resources/models/input_sexist_scorer.py +++ b/src/splunk_ao/resources/models/input_sexist_scorer.py @@ -25,14 +25,14 @@ class InputSexistScorer: name (Literal['input_sexist'] | Unset): Default: 'input_sexist'. filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): List of filters to apply to the scorer. - type_ (InputSexistScorerType | Unset): Default: InputSexistScorerType.LUNA. + type_ (InputSexistScorerType | str | Unset): Default: InputSexistScorerType.LUNA. model_name (None | str | Unset): Alias of the model to use for the scorer. num_judges (int | None | Unset): Number of judges for the scorer. """ name: Literal["input_sexist"] | Unset = "input_sexist" filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET - type_: InputSexistScorerType | Unset = InputSexistScorerType.LUNA + type_: InputSexistScorerType | str | Unset = InputSexistScorerType.LUNA model_name: None | str | Unset = UNSET num_judges: int | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -62,9 +62,13 @@ def to_dict(self) -> dict[str, Any]: else: filters = self.filters - type_: str | Unset = UNSET - if not isinstance(self.type_, Unset): + type_: str | Unset + if isinstance(self.type_, Unset): + type_ = UNSET + elif isinstance(self.type_, InputSexistScorerType): type_ = self.type_.value + else: + type_ = self.type_ model_name: None | str | Unset if isinstance(self.model_name, Unset): @@ -151,12 +155,22 @@ def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter filters = _parse_filters(d.pop("filters", UNSET)) - _type_ = d.pop("type", UNSET) - type_: InputSexistScorerType | Unset - if isinstance(_type_, Unset): - type_ = UNSET - else: - type_ = InputSexistScorerType(_type_) + def _parse_type_(data: object) -> InputSexistScorerType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + type_type_0 = InputSexistScorerType(data) + + return type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(InputSexistScorerType | str | Unset, data) + + type_ = _parse_type_(d.pop("type", UNSET)) def _parse_model_name(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/input_toxicity_scorer.py b/src/splunk_ao/resources/models/input_toxicity_scorer.py index 1de69ccb..56ce1e59 100644 --- a/src/splunk_ao/resources/models/input_toxicity_scorer.py +++ b/src/splunk_ao/resources/models/input_toxicity_scorer.py @@ -25,14 +25,14 @@ class InputToxicityScorer: name (Literal['input_toxicity'] | Unset): Default: 'input_toxicity'. filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): List of filters to apply to the scorer. - type_ (InputToxicityScorerType | Unset): Default: InputToxicityScorerType.LUNA. + type_ (InputToxicityScorerType | str | Unset): Default: InputToxicityScorerType.LUNA. model_name (None | str | Unset): Alias of the model to use for the scorer. num_judges (int | None | Unset): Number of judges for the scorer. """ name: Literal["input_toxicity"] | Unset = "input_toxicity" filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET - type_: InputToxicityScorerType | Unset = InputToxicityScorerType.LUNA + type_: InputToxicityScorerType | str | Unset = InputToxicityScorerType.LUNA model_name: None | str | Unset = UNSET num_judges: int | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -62,9 +62,13 @@ def to_dict(self) -> dict[str, Any]: else: filters = self.filters - type_: str | Unset = UNSET - if not isinstance(self.type_, Unset): + type_: str | Unset + if isinstance(self.type_, Unset): + type_ = UNSET + elif isinstance(self.type_, InputToxicityScorerType): type_ = self.type_.value + else: + type_ = self.type_ model_name: None | str | Unset if isinstance(self.model_name, Unset): @@ -151,12 +155,22 @@ def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter filters = _parse_filters(d.pop("filters", UNSET)) - _type_ = d.pop("type", UNSET) - type_: InputToxicityScorerType | Unset - if isinstance(_type_, Unset): - type_ = UNSET - else: - type_ = InputToxicityScorerType(_type_) + def _parse_type_(data: object) -> InputToxicityScorerType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + type_type_0 = InputToxicityScorerType(data) + + return type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(InputToxicityScorerType | str | Unset, data) + + type_ = _parse_type_(d.pop("type", UNSET)) def _parse_model_name(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/insight_summary.py b/src/splunk_ao/resources/models/insight_summary.py index 99717c30..d73147da 100644 --- a/src/splunk_ao/resources/models/insight_summary.py +++ b/src/splunk_ao/resources/models/insight_summary.py @@ -22,7 +22,7 @@ class InsightSummary: details (str): suggested_action (str): priority (int): - priority_category (InsightSummaryPriorityCategoryType0 | None | Unset): + priority_category (InsightSummaryPriorityCategoryType0 | None | str | Unset): """ id: str @@ -31,7 +31,7 @@ class InsightSummary: details: str suggested_action: str priority: int - priority_category: InsightSummaryPriorityCategoryType0 | None | Unset = UNSET + priority_category: InsightSummaryPriorityCategoryType0 | None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -87,7 +87,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: priority = d.pop("priority") - def _parse_priority_category(data: object) -> InsightSummaryPriorityCategoryType0 | None | Unset: + def _parse_priority_category(data: object) -> InsightSummaryPriorityCategoryType0 | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -100,7 +100,9 @@ def _parse_priority_category(data: object) -> InsightSummaryPriorityCategoryType return priority_category_type_0 except: # noqa: E722 pass - return cast(InsightSummaryPriorityCategoryType0 | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for priority_category") + return cast(InsightSummaryPriorityCategoryType0 | None | str | Unset, data) priority_category = _parse_priority_category(d.pop("priority_category", UNSET)) diff --git a/src/splunk_ao/resources/models/integration_db.py b/src/splunk_ao/resources/models/integration_db.py index 087b0372..ffb952f8 100644 --- a/src/splunk_ao/resources/models/integration_db.py +++ b/src/splunk_ao/resources/models/integration_db.py @@ -2,7 +2,7 @@ import datetime from collections.abc import Mapping -from typing import TYPE_CHECKING, Any, TypeVar +from typing import TYPE_CHECKING, Any, TypeVar, cast from attrs import define as _attrs_define from attrs import field as _attrs_field @@ -23,7 +23,7 @@ class IntegrationDB: Attributes: id (str): name (str): - provider (IntegrationProvider): + provider (IntegrationProvider | str): created_at (datetime.datetime): updated_at (datetime.datetime): created_by (str): @@ -34,7 +34,7 @@ class IntegrationDB: id: str name: str - provider: IntegrationProvider + provider: IntegrationProvider | str created_at: datetime.datetime updated_at: datetime.datetime created_by: str @@ -48,7 +48,11 @@ def to_dict(self) -> dict[str, Any]: name = self.name - provider = self.provider.value + provider: str + if isinstance(self.provider, IntegrationProvider): + provider = self.provider.value + else: + provider = self.provider created_at = self.created_at.isoformat() @@ -97,7 +101,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: name = d.pop("name") - provider = IntegrationProvider(d.pop("provider")) + def _parse_provider(data: object) -> IntegrationProvider | str: + try: + if not isinstance(data, str): + raise TypeError() + provider_type_0 = IntegrationProvider(data) + + return provider_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for provider") + return cast(IntegrationProvider | str, data) + + provider = _parse_provider(d.pop("provider")) created_at = datetime.datetime.fromisoformat(d.pop("created_at")) diff --git a/src/splunk_ao/resources/models/integration_models_response.py b/src/splunk_ao/resources/models/integration_models_response.py index 8a961b6c..d0ad91f2 100644 --- a/src/splunk_ao/resources/models/integration_models_response.py +++ b/src/splunk_ao/resources/models/integration_models_response.py @@ -23,7 +23,7 @@ class IntegrationModelsResponse: Attributes: integration_name (str): integration_id (str): - provider (IntegrationProvider): + provider (IntegrationProvider | str): models (list[str]): scorer_models (list[str]): recommended_models (IntegrationModelsResponseRecommendedModels | Unset): @@ -34,7 +34,7 @@ class IntegrationModelsResponse: integration_name: str integration_id: str - provider: IntegrationProvider + provider: IntegrationProvider | str models: list[str] scorer_models: list[str] recommended_models: IntegrationModelsResponseRecommendedModels | Unset = UNSET @@ -48,7 +48,11 @@ def to_dict(self) -> dict[str, Any]: integration_id = self.integration_id - provider = self.provider.value + provider: str + if isinstance(self.provider, IntegrationProvider): + provider = self.provider.value + else: + provider = self.provider models = self.models @@ -101,7 +105,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: integration_id = d.pop("integration_id") - provider = IntegrationProvider(d.pop("provider")) + def _parse_provider(data: object) -> IntegrationProvider | str: + try: + if not isinstance(data, str): + raise TypeError() + provider_type_0 = IntegrationProvider(data) + + return provider_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for provider") + return cast(IntegrationProvider | str, data) + + provider = _parse_provider(d.pop("provider")) models = cast(list[str], d.pop("models")) diff --git a/src/splunk_ao/resources/models/internal_tool_call.py b/src/splunk_ao/resources/models/internal_tool_call.py index 1aae5d29..ac067270 100644 --- a/src/splunk_ao/resources/models/internal_tool_call.py +++ b/src/splunk_ao/resources/models/internal_tool_call.py @@ -29,7 +29,7 @@ class InternalToolCall: name (str): Name of the internal tool (e.g., 'web_search', 'code_interpreter', 'file_search') type_ (Literal['internal_tool_call'] | Unset): Default: 'internal_tool_call'. id (None | str | Unset): Unique identifier for the event - status (EventStatus | None | Unset): Status of the event + status (EventStatus | None | str | Unset): Status of the event metadata (InternalToolCallMetadataType0 | None | Unset): Provider-specific metadata and additional fields error_message (None | str | Unset): Error message if the event failed input_ (InternalToolCallInputType0 | None | Unset): Input/arguments to the tool call @@ -39,7 +39,7 @@ class InternalToolCall: name: str type_: Literal["internal_tool_call"] | Unset = "internal_tool_call" id: None | str | Unset = UNSET - status: EventStatus | None | Unset = UNSET + status: EventStatus | None | str | Unset = UNSET metadata: InternalToolCallMetadataType0 | None | Unset = UNSET error_message: None | str | Unset = UNSET input_: InternalToolCallInputType0 | None | Unset = UNSET @@ -141,7 +141,7 @@ def _parse_id(data: object) -> None | str | Unset: id = _parse_id(d.pop("id", UNSET)) - def _parse_status(data: object) -> EventStatus | None | Unset: + def _parse_status(data: object) -> EventStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -154,7 +154,9 @@ def _parse_status(data: object) -> EventStatus | None | Unset: return status_type_0 except: # noqa: E722 pass - return cast(EventStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for status") + return cast(EventStatus | None | str | Unset, data) status = _parse_status(d.pop("status", UNSET)) diff --git a/src/splunk_ao/resources/models/invoke_response.py b/src/splunk_ao/resources/models/invoke_response.py index ffa11063..25d9ba21 100644 --- a/src/splunk_ao/resources/models/invoke_response.py +++ b/src/splunk_ao/resources/models/invoke_response.py @@ -30,7 +30,7 @@ class InvokeResponse: trace_metadata (TraceMetadata): stage_metadata (StageMetadata): action_result (ActionResult): - status (ExecutionStatus | Unset): Status of the execution. + status (ExecutionStatus | str | Unset): api_version (str | Unset): Default: '1.0.0'. ruleset_results (list[RulesetResult] | Unset): Results of the rule execution. metric_results (InvokeResponseMetricResults | Unset): Results of the metric computation. @@ -44,7 +44,7 @@ class InvokeResponse: trace_metadata: TraceMetadata stage_metadata: StageMetadata action_result: ActionResult - status: ExecutionStatus | Unset = UNSET + status: ExecutionStatus | str | Unset = UNSET api_version: str | Unset = "1.0.0" ruleset_results: list[RulesetResult] | Unset = UNSET metric_results: InvokeResponseMetricResults | Unset = UNSET @@ -64,9 +64,13 @@ def to_dict(self) -> dict[str, Any]: action_result = self.action_result.to_dict() - status: str | Unset = UNSET - if not isinstance(self.status, Unset): + status: str | Unset + if isinstance(self.status, Unset): + status = UNSET + elif isinstance(self.status, ExecutionStatus): status = self.status.value + else: + status = self.status api_version = self.api_version @@ -141,12 +145,22 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: action_result = ActionResult.from_dict(d.pop("action_result")) - _status = d.pop("status", UNSET) - status: ExecutionStatus | Unset - if isinstance(_status, Unset): - status = UNSET - else: - status = ExecutionStatus(_status) + def _parse_status(data: object) -> ExecutionStatus | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + status_type_0 = ExecutionStatus(data) + + return status_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for status") + return cast(ExecutionStatus | str | Unset, data) + + status = _parse_status(d.pop("status", UNSET)) api_version = d.pop("api_version", UNSET) diff --git a/src/splunk_ao/resources/models/log_records_boolean_filter.py b/src/splunk_ao/resources/models/log_records_boolean_filter.py index 9f2534b3..6b1d5059 100644 --- a/src/splunk_ao/resources/models/log_records_boolean_filter.py +++ b/src/splunk_ao/resources/models/log_records_boolean_filter.py @@ -18,13 +18,13 @@ class LogRecordsBooleanFilter: Attributes: column_id (str): ID of the column to filter. value (bool): - operator (LogRecordsBooleanFilterOperator | Unset): Default: LogRecordsBooleanFilterOperator.EQ. + operator (LogRecordsBooleanFilterOperator | str | Unset): Default: LogRecordsBooleanFilterOperator.EQ. type_ (Literal['boolean'] | Unset): Default: 'boolean'. """ column_id: str value: bool - operator: LogRecordsBooleanFilterOperator | Unset = LogRecordsBooleanFilterOperator.EQ + operator: LogRecordsBooleanFilterOperator | str | Unset = LogRecordsBooleanFilterOperator.EQ type_: Literal["boolean"] | Unset = "boolean" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -33,9 +33,13 @@ def to_dict(self) -> dict[str, Any]: value = self.value - operator: str | Unset = UNSET - if not isinstance(self.operator, Unset): + operator: str | Unset + if isinstance(self.operator, Unset): + operator = UNSET + elif isinstance(self.operator, LogRecordsBooleanFilterOperator): operator = self.operator.value + else: + operator = self.operator type_ = self.type_ @@ -56,12 +60,22 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: value = d.pop("value") - _operator = d.pop("operator", UNSET) - operator: LogRecordsBooleanFilterOperator | Unset - if isinstance(_operator, Unset): - operator = UNSET - else: - operator = LogRecordsBooleanFilterOperator(_operator) + def _parse_operator(data: object) -> LogRecordsBooleanFilterOperator | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = LogRecordsBooleanFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(LogRecordsBooleanFilterOperator | str | Unset, data) + + operator = _parse_operator(d.pop("operator", UNSET)) type_ = cast(Literal["boolean"] | Unset, d.pop("type", UNSET)) if type_ != "boolean" and not isinstance(type_, Unset): diff --git a/src/splunk_ao/resources/models/log_records_collection_filter.py b/src/splunk_ao/resources/models/log_records_collection_filter.py index d3a89de1..77a4b894 100644 --- a/src/splunk_ao/resources/models/log_records_collection_filter.py +++ b/src/splunk_ao/resources/models/log_records_collection_filter.py @@ -17,14 +17,14 @@ class LogRecordsCollectionFilter: """ Attributes: column_id (str): ID of the column to filter. - operator (LogRecordsCollectionFilterOperator): + operator (LogRecordsCollectionFilterOperator | str): value (list[str] | str): case_sensitive (bool | Unset): Default: True. type_ (Literal['collection'] | Unset): Default: 'collection'. """ column_id: str - operator: LogRecordsCollectionFilterOperator + operator: LogRecordsCollectionFilterOperator | str value: list[str] | str case_sensitive: bool | Unset = True type_: Literal["collection"] | Unset = "collection" @@ -33,7 +33,11 @@ class LogRecordsCollectionFilter: def to_dict(self) -> dict[str, Any]: column_id = self.column_id - operator = self.operator.value + operator: str + if isinstance(self.operator, LogRecordsCollectionFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: list[str] | str if isinstance(self.value, list): @@ -61,7 +65,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) column_id = d.pop("column_id") - operator = LogRecordsCollectionFilterOperator(d.pop("operator")) + def _parse_operator(data: object) -> LogRecordsCollectionFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = LogRecordsCollectionFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(LogRecordsCollectionFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> list[str] | str: try: diff --git a/src/splunk_ao/resources/models/log_records_column_info.py b/src/splunk_ao/resources/models/log_records_column_info.py index a6d4b783..98c72414 100644 --- a/src/splunk_ao/resources/models/log_records_column_info.py +++ b/src/splunk_ao/resources/models/log_records_column_info.py @@ -28,19 +28,19 @@ class LogRecordsColumnInfo: """ Attributes: id (str): Column id. Must be universally unique. - category (ColumnCategory): - data_type (DataType | None): Data type of the column. This is used to determine how to format the data on the - UI. + category (ColumnCategory | str): Category of the column. + data_type (DataType | None | str): Data type of the column. This is used to determine how to format the data on + the UI. label (None | str | Unset): Display label of the column in the UI. description (None | str | Unset): Description of the column. group_label (None | str | Unset): Display label of the column group. - data_unit (DataUnit | None | Unset): Data unit of the column (optional). + data_unit (DataUnit | None | str | Unset): Data unit of the column (optional). multi_valued (bool | Unset): Whether the column is multi-valued. Default: False. allowed_values (list[Any] | None | Unset): Allowed values for this column. sortable (bool | Unset): Whether the column is sortable. filterable (bool | Unset): Whether the column is filterable. is_empty (bool | Unset): Indicates whether the column is empty and should be hidden. Default: False. - applicable_types (list[StepType] | Unset): List of types applicable for this column. + applicable_types (list[StepType | str] | Unset): List of types applicable for this column. is_optional (bool | Unset): Whether the column is optional. Default: False. roll_up_method (None | str | Unset): Default roll-up aggregation method for this metric (e.g., 'sum', 'average'). @@ -49,35 +49,35 @@ class LogRecordsColumnInfo: scorer_config (None | ScorerConfig | Unset): For metric columns only: Scorer config that produced the metric. scorer_id (None | str | Unset): For metric columns only: Scorer id that produced the metric. This is deprecated and will be removed in future versions. - insight_type (InsightType | None | Unset): Insight type. - filter_type (LogRecordsFilterType | None | Unset): Filter type. + insight_type (InsightType | None | str | Unset): Insight type. + filter_type (LogRecordsFilterType | None | str | Unset): Filter type. threshold (MetricThreshold | None | Unset): Thresholds for the column, if this is a metrics column. - label_color (LogRecordsColumnInfoLabelColorType0 | None | Unset): Type of label color for the column, if this is - a multilabel metric column. + label_color (LogRecordsColumnInfoLabelColorType0 | None | str | Unset): Type of label color for the column, if + this is a multilabel metric column. """ id: str - category: ColumnCategory - data_type: DataType | None + category: ColumnCategory | str + data_type: DataType | None | str label: None | str | Unset = UNSET description: None | str | Unset = UNSET group_label: None | str | Unset = UNSET - data_unit: DataUnit | None | Unset = UNSET + data_unit: DataUnit | None | str | Unset = UNSET multi_valued: bool | Unset = False allowed_values: list[Any] | None | Unset = UNSET sortable: bool | Unset = UNSET filterable: bool | Unset = UNSET is_empty: bool | Unset = False - applicable_types: list[StepType] | Unset = UNSET + applicable_types: list[StepType | str] | Unset = UNSET is_optional: bool | Unset = False roll_up_method: None | str | Unset = UNSET metric_key_alias: None | str | Unset = UNSET scorer_config: None | ScorerConfig | Unset = UNSET scorer_id: None | str | Unset = UNSET - insight_type: InsightType | None | Unset = UNSET - filter_type: LogRecordsFilterType | None | Unset = UNSET + insight_type: InsightType | None | str | Unset = UNSET + filter_type: LogRecordsFilterType | None | str | Unset = UNSET threshold: MetricThreshold | None | Unset = UNSET - label_color: LogRecordsColumnInfoLabelColorType0 | None | Unset = UNSET + label_color: LogRecordsColumnInfoLabelColorType0 | None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -86,7 +86,11 @@ def to_dict(self) -> dict[str, Any]: id = self.id - category = self.category.value + category: str + if isinstance(self.category, ColumnCategory): + category = self.category.value + else: + category = self.category data_type: None | str if isinstance(self.data_type, DataType): @@ -141,7 +145,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.applicable_types, Unset): applicable_types = [] for applicable_types_item_data in self.applicable_types: - applicable_types_item = applicable_types_item_data.value + applicable_types_item: str + if isinstance(applicable_types_item_data, StepType): + applicable_types_item = applicable_types_item_data.value + else: + applicable_types_item = applicable_types_item_data applicable_types.append(applicable_types_item) is_optional = self.is_optional @@ -256,9 +264,22 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) id = d.pop("id") - category = ColumnCategory(d.pop("category")) + def _parse_category(data: object) -> ColumnCategory | str: + try: + if not isinstance(data, str): + raise TypeError() + category_type_0 = ColumnCategory(data) - def _parse_data_type(data: object) -> DataType | None: + return category_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for category") + return cast(ColumnCategory | str, data) + + category = _parse_category(d.pop("category")) + + def _parse_data_type(data: object) -> DataType | None | str: if data is None: return data try: @@ -269,7 +290,9 @@ def _parse_data_type(data: object) -> DataType | None: return data_type_type_0 except: # noqa: E722 pass - return cast(DataType | None, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for data_type") + return cast(DataType | None | str, data) data_type = _parse_data_type(d.pop("data_type")) @@ -300,7 +323,7 @@ def _parse_group_label(data: object) -> None | str | Unset: group_label = _parse_group_label(d.pop("group_label", UNSET)) - def _parse_data_unit(data: object) -> DataUnit | None | Unset: + def _parse_data_unit(data: object) -> DataUnit | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -313,7 +336,9 @@ def _parse_data_unit(data: object) -> DataUnit | None | Unset: return data_unit_type_0 except: # noqa: E722 pass - return cast(DataUnit | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for data_unit") + return cast(DataUnit | None | str | Unset, data) data_unit = _parse_data_unit(d.pop("data_unit", UNSET)) @@ -343,11 +368,25 @@ def _parse_allowed_values(data: object) -> list[Any] | None | Unset: is_empty = d.pop("is_empty", UNSET) _applicable_types = d.pop("applicable_types", UNSET) - applicable_types: list[StepType] | Unset = UNSET + applicable_types: list[StepType | str] | Unset = UNSET if _applicable_types is not UNSET: applicable_types = [] for applicable_types_item_data in _applicable_types: - applicable_types_item = StepType(applicable_types_item_data) + + def _parse_applicable_types_item(data: object) -> StepType | str: + try: + if not isinstance(data, str): + raise TypeError() + applicable_types_item_type_0 = StepType(data) + + return applicable_types_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for applicable_types_item") + return cast(StepType | str, data) + + applicable_types_item = _parse_applicable_types_item(applicable_types_item_data) applicable_types.append(applicable_types_item) @@ -397,7 +436,7 @@ def _parse_scorer_id(data: object) -> None | str | Unset: scorer_id = _parse_scorer_id(d.pop("scorer_id", UNSET)) - def _parse_insight_type(data: object) -> InsightType | None | Unset: + def _parse_insight_type(data: object) -> InsightType | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -410,11 +449,13 @@ def _parse_insight_type(data: object) -> InsightType | None | Unset: return insight_type_type_0 except: # noqa: E722 pass - return cast(InsightType | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for insight_type") + return cast(InsightType | None | str | Unset, data) insight_type = _parse_insight_type(d.pop("insight_type", UNSET)) - def _parse_filter_type(data: object) -> LogRecordsFilterType | None | Unset: + def _parse_filter_type(data: object) -> LogRecordsFilterType | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -427,7 +468,9 @@ def _parse_filter_type(data: object) -> LogRecordsFilterType | None | Unset: return filter_type_type_0 except: # noqa: E722 pass - return cast(LogRecordsFilterType | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for filter_type") + return cast(LogRecordsFilterType | None | str | Unset, data) filter_type = _parse_filter_type(d.pop("filter_type", UNSET)) @@ -448,7 +491,7 @@ def _parse_threshold(data: object) -> MetricThreshold | None | Unset: threshold = _parse_threshold(d.pop("threshold", UNSET)) - def _parse_label_color(data: object) -> LogRecordsColumnInfoLabelColorType0 | None | Unset: + def _parse_label_color(data: object) -> LogRecordsColumnInfoLabelColorType0 | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -461,7 +504,9 @@ def _parse_label_color(data: object) -> LogRecordsColumnInfoLabelColorType0 | No return label_color_type_0 except: # noqa: E722 pass - return cast(LogRecordsColumnInfoLabelColorType0 | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for label_color") + return cast(LogRecordsColumnInfoLabelColorType0 | None | str | Unset, data) label_color = _parse_label_color(d.pop("label_color", UNSET)) diff --git a/src/splunk_ao/resources/models/log_records_date_filter.py b/src/splunk_ao/resources/models/log_records_date_filter.py index 156849c6..4142fbcd 100644 --- a/src/splunk_ao/resources/models/log_records_date_filter.py +++ b/src/splunk_ao/resources/models/log_records_date_filter.py @@ -18,13 +18,13 @@ class LogRecordsDateFilter: """ Attributes: column_id (str): ID of the column to filter. - operator (LogRecordsDateFilterOperator): + operator (LogRecordsDateFilterOperator | str): value (datetime.datetime): type_ (Literal['date'] | Unset): Default: 'date'. """ column_id: str - operator: LogRecordsDateFilterOperator + operator: LogRecordsDateFilterOperator | str value: datetime.datetime type_: Literal["date"] | Unset = "date" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -32,7 +32,11 @@ class LogRecordsDateFilter: def to_dict(self) -> dict[str, Any]: column_id = self.column_id - operator = self.operator.value + operator: str + if isinstance(self.operator, LogRecordsDateFilterOperator): + operator = self.operator.value + else: + operator = self.operator value = self.value.isoformat() @@ -51,7 +55,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) column_id = d.pop("column_id") - operator = LogRecordsDateFilterOperator(d.pop("operator")) + def _parse_operator(data: object) -> LogRecordsDateFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = LogRecordsDateFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(LogRecordsDateFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) value = datetime.datetime.fromisoformat(d.pop("value")) diff --git a/src/splunk_ao/resources/models/log_records_export_request.py b/src/splunk_ao/resources/models/log_records_export_request.py index ddc5fed9..c808fee9 100644 --- a/src/splunk_ao/resources/models/log_records_export_request.py +++ b/src/splunk_ao/resources/models/log_records_export_request.py @@ -29,12 +29,9 @@ class LogRecordsExportRequest: """Request schema for exporting log records (sessions, traces, spans). Attributes: - root_type (RootType): The root-level type of a logged step hierarchy. - - Maps fine-grained StepType values to the three top-level categories - used throughout the platform: session, trace, and span. + root_type (RootType | str): column_ids (list[str] | None | Unset): Column IDs to include in the export. Applies only to CSV exports. - export_format (LLMExportFormat | Unset): + export_format (LLMExportFormat | str | Unset): Export format redact (bool | Unset): Redact sensitive data Default: True. file_name (None | str | Unset): Optional filename for the exported file export_computed_metrics_only (bool | Unset): When true, export only enabled scorer metrics with computed values @@ -54,9 +51,9 @@ class LogRecordsExportRequest: in the export. Off by default to keep payloads small for callers that don't need it. Default: False. """ - root_type: RootType + root_type: RootType | str column_ids: list[str] | None | Unset = UNSET - export_format: LLMExportFormat | Unset = UNSET + export_format: LLMExportFormat | str | Unset = UNSET redact: bool | Unset = True file_name: None | str | Unset = UNSET export_computed_metrics_only: bool | Unset = False @@ -88,7 +85,11 @@ def to_dict(self) -> dict[str, Any]: from ..models.log_records_sort_clause import LogRecordsSortClause from ..models.log_records_text_filter import LogRecordsTextFilter - root_type = self.root_type.value + root_type: str + if isinstance(self.root_type, RootType): + root_type = self.root_type.value + else: + root_type = self.root_type column_ids: list[str] | None | Unset if isinstance(self.column_ids, Unset): @@ -99,9 +100,13 @@ def to_dict(self) -> dict[str, Any]: else: column_ids = self.column_ids - export_format: str | Unset = UNSET - if not isinstance(self.export_format, Unset): + export_format: str | Unset + if isinstance(self.export_format, Unset): + export_format = UNSET + elif isinstance(self.export_format, LLMExportFormat): export_format = self.export_format.value + else: + export_format = self.export_format redact = self.redact @@ -203,7 +208,21 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: from ..models.log_records_text_filter import LogRecordsTextFilter d = dict(src_dict) - root_type = RootType(d.pop("root_type")) + + def _parse_root_type(data: object) -> RootType | str: + try: + if not isinstance(data, str): + raise TypeError() + root_type_type_0 = RootType(data) + + return root_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for root_type") + return cast(RootType | str, data) + + root_type = _parse_root_type(d.pop("root_type")) def _parse_column_ids(data: object) -> list[str] | None | Unset: if data is None: @@ -222,12 +241,22 @@ def _parse_column_ids(data: object) -> list[str] | None | Unset: column_ids = _parse_column_ids(d.pop("column_ids", UNSET)) - _export_format = d.pop("export_format", UNSET) - export_format: LLMExportFormat | Unset - if isinstance(_export_format, Unset): - export_format = UNSET - else: - export_format = LLMExportFormat(_export_format) + def _parse_export_format(data: object) -> LLMExportFormat | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + export_format_type_0 = LLMExportFormat(data) + + return export_format_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for export_format") + return cast(LLMExportFormat | str | Unset, data) + + export_format = _parse_export_format(d.pop("export_format", UNSET)) redact = d.pop("redact", UNSET) diff --git a/src/splunk_ao/resources/models/log_records_id_filter.py b/src/splunk_ao/resources/models/log_records_id_filter.py index 485e75a3..d7ca27d0 100644 --- a/src/splunk_ao/resources/models/log_records_id_filter.py +++ b/src/splunk_ao/resources/models/log_records_id_filter.py @@ -18,13 +18,13 @@ class LogRecordsIDFilter: Attributes: column_id (str): ID of the column to filter. value (list[str] | str): - operator (LogRecordsIDFilterOperator | Unset): Default: LogRecordsIDFilterOperator.EQ. + operator (LogRecordsIDFilterOperator | str | Unset): Default: LogRecordsIDFilterOperator.EQ. type_ (Literal['id'] | Unset): Default: 'id'. """ column_id: str value: list[str] | str - operator: LogRecordsIDFilterOperator | Unset = LogRecordsIDFilterOperator.EQ + operator: LogRecordsIDFilterOperator | str | Unset = LogRecordsIDFilterOperator.EQ type_: Literal["id"] | Unset = "id" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -42,9 +42,13 @@ def to_dict(self) -> dict[str, Any]: else: value = self.value - operator: str | Unset = UNSET - if not isinstance(self.operator, Unset): + operator: str | Unset + if isinstance(self.operator, Unset): + operator = UNSET + elif isinstance(self.operator, LogRecordsIDFilterOperator): operator = self.operator.value + else: + operator = self.operator type_ = self.type_ @@ -85,12 +89,22 @@ def _parse_value_type_1_item(data: object) -> str: value = _parse_value(d.pop("value")) - _operator = d.pop("operator", UNSET) - operator: LogRecordsIDFilterOperator | Unset - if isinstance(_operator, Unset): - operator = UNSET - else: - operator = LogRecordsIDFilterOperator(_operator) + def _parse_operator(data: object) -> LogRecordsIDFilterOperator | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = LogRecordsIDFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(LogRecordsIDFilterOperator | str | Unset, data) + + operator = _parse_operator(d.pop("operator", UNSET)) type_ = cast(Literal["id"] | Unset, d.pop("type", UNSET)) if type_ != "id" and not isinstance(type_, Unset): diff --git a/src/splunk_ao/resources/models/log_records_number_filter.py b/src/splunk_ao/resources/models/log_records_number_filter.py index 1d7e14eb..dd4031a9 100644 --- a/src/splunk_ao/resources/models/log_records_number_filter.py +++ b/src/splunk_ao/resources/models/log_records_number_filter.py @@ -17,13 +17,13 @@ class LogRecordsNumberFilter: """ Attributes: column_id (str): ID of the column to filter. - operator (LogRecordsNumberFilterOperator): + operator (LogRecordsNumberFilterOperator | str): value (float | int | list[float] | list[int]): type_ (Literal['number'] | Unset): Default: 'number'. """ column_id: str - operator: LogRecordsNumberFilterOperator + operator: LogRecordsNumberFilterOperator | str value: float | int | list[float] | list[int] type_: Literal["number"] | Unset = "number" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -31,7 +31,11 @@ class LogRecordsNumberFilter: def to_dict(self) -> dict[str, Any]: column_id = self.column_id - operator = self.operator.value + operator: str + if isinstance(self.operator, LogRecordsNumberFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: float | int | list[float] | list[int] if isinstance(self.value, list): @@ -58,7 +62,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) column_id = d.pop("column_id") - operator = LogRecordsNumberFilterOperator(d.pop("operator")) + def _parse_operator(data: object) -> LogRecordsNumberFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = LogRecordsNumberFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(LogRecordsNumberFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> float | int | list[float] | list[int]: try: diff --git a/src/splunk_ao/resources/models/log_records_text_filter.py b/src/splunk_ao/resources/models/log_records_text_filter.py index 1573b26c..3c76acc9 100644 --- a/src/splunk_ao/resources/models/log_records_text_filter.py +++ b/src/splunk_ao/resources/models/log_records_text_filter.py @@ -17,14 +17,14 @@ class LogRecordsTextFilter: """ Attributes: column_id (str): ID of the column to filter. - operator (LogRecordsTextFilterOperator): + operator (LogRecordsTextFilterOperator | str): value (list[str] | str): case_sensitive (bool | Unset): Default: True. type_ (Literal['text'] | Unset): Default: 'text'. """ column_id: str - operator: LogRecordsTextFilterOperator + operator: LogRecordsTextFilterOperator | str value: list[str] | str case_sensitive: bool | Unset = True type_: Literal["text"] | Unset = "text" @@ -33,7 +33,11 @@ class LogRecordsTextFilter: def to_dict(self) -> dict[str, Any]: column_id = self.column_id - operator = self.operator.value + operator: str + if isinstance(self.operator, LogRecordsTextFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: list[str] | str if isinstance(self.value, list): @@ -61,7 +65,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) column_id = d.pop("column_id") - operator = LogRecordsTextFilterOperator(d.pop("operator")) + def _parse_operator(data: object) -> LogRecordsTextFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = LogRecordsTextFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(LogRecordsTextFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> list[str] | str: try: diff --git a/src/splunk_ao/resources/models/log_span_update_request.py b/src/splunk_ao/resources/models/log_span_update_request.py index e98c4118..01023638 100644 --- a/src/splunk_ao/resources/models/log_span_update_request.py +++ b/src/splunk_ao/resources/models/log_span_update_request.py @@ -29,7 +29,7 @@ class LogSpanUpdateRequest: log_stream_id (None | str | Unset): Log stream id associated with the traces. experiment_id (None | str | Unset): Experiment id associated with the traces. metrics_testing_id (None | str | Unset): Metrics testing id associated with the traces. - logging_method (LoggingMethod | Unset): + logging_method (LoggingMethod | str | Unset): client_version (None | str | Unset): reliable (bool | Unset): Whether or not to use reliable logging. If set to False, the method will respond immediately before verifying that the traces have been successfully ingested, and no error message will be @@ -48,7 +48,7 @@ class LogSpanUpdateRequest: log_stream_id: None | str | Unset = UNSET experiment_id: None | str | Unset = UNSET metrics_testing_id: None | str | Unset = UNSET - logging_method: LoggingMethod | Unset = UNSET + logging_method: LoggingMethod | str | Unset = UNSET client_version: None | str | Unset = UNSET reliable: bool | Unset = True input_: list[FileContentPart | TextContentPart] | list[Message] | None | str | Unset = UNSET @@ -85,9 +85,13 @@ def to_dict(self) -> dict[str, Any]: else: metrics_testing_id = self.metrics_testing_id - logging_method: str | Unset = UNSET - if not isinstance(self.logging_method, Unset): + logging_method: str | Unset + if isinstance(self.logging_method, Unset): + logging_method = UNSET + elif isinstance(self.logging_method, LoggingMethod): logging_method = self.logging_method.value + else: + logging_method = self.logging_method client_version: None | str | Unset if isinstance(self.client_version, Unset): @@ -234,12 +238,22 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) - _logging_method = d.pop("logging_method", UNSET) - logging_method: LoggingMethod | Unset - if isinstance(_logging_method, Unset): - logging_method = UNSET - else: - logging_method = LoggingMethod(_logging_method) + def _parse_logging_method(data: object) -> LoggingMethod | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + logging_method_type_0 = LoggingMethod(data) + + return logging_method_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for logging_method") + return cast(LoggingMethod | str | Unset, data) + + logging_method = _parse_logging_method(d.pop("logging_method", UNSET)) def _parse_client_version(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/log_spans_ingest_request.py b/src/splunk_ao/resources/models/log_spans_ingest_request.py index 34e82d8b..26223e38 100644 --- a/src/splunk_ao/resources/models/log_spans_ingest_request.py +++ b/src/splunk_ao/resources/models/log_spans_ingest_request.py @@ -32,7 +32,7 @@ class LogSpansIngestRequest: log_stream_id (None | str | Unset): Log stream id associated with the traces. experiment_id (None | str | Unset): Experiment id associated with the traces. metrics_testing_id (None | str | Unset): Metrics testing id associated with the traces. - logging_method (LoggingMethod | Unset): + logging_method (LoggingMethod | str | Unset): client_version (None | str | Unset): reliable (bool | Unset): Whether or not to use reliable logging. If set to False, the method will respond immediately before verifying that the traces have been successfully ingested, and no error message will be @@ -46,7 +46,7 @@ class LogSpansIngestRequest: log_stream_id: None | str | Unset = UNSET experiment_id: None | str | Unset = UNSET metrics_testing_id: None | str | Unset = UNSET - logging_method: LoggingMethod | Unset = UNSET + logging_method: LoggingMethod | str | Unset = UNSET client_version: None | str | Unset = UNSET reliable: bool | Unset = True additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -98,9 +98,13 @@ def to_dict(self) -> dict[str, Any]: else: metrics_testing_id = self.metrics_testing_id - logging_method: str | Unset = UNSET - if not isinstance(self.logging_method, Unset): + logging_method: str | Unset + if isinstance(self.logging_method, Unset): + logging_method = UNSET + elif isinstance(self.logging_method, LoggingMethod): logging_method = self.logging_method.value + else: + logging_method = self.logging_method client_version: None | str | Unset if isinstance(self.client_version, Unset): @@ -226,12 +230,22 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) - _logging_method = d.pop("logging_method", UNSET) - logging_method: LoggingMethod | Unset - if isinstance(_logging_method, Unset): - logging_method = UNSET - else: - logging_method = LoggingMethod(_logging_method) + def _parse_logging_method(data: object) -> LoggingMethod | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + logging_method_type_0 = LoggingMethod(data) + + return logging_method_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for logging_method") + return cast(LoggingMethod | str | Unset, data) + + logging_method = _parse_logging_method(d.pop("logging_method", UNSET)) def _parse_client_version(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/log_trace_update_request.py b/src/splunk_ao/resources/models/log_trace_update_request.py index 16fcfcbf..c4aeee9a 100644 --- a/src/splunk_ao/resources/models/log_trace_update_request.py +++ b/src/splunk_ao/resources/models/log_trace_update_request.py @@ -21,7 +21,7 @@ class LogTraceUpdateRequest: log_stream_id (None | str | Unset): Log stream id associated with the traces. experiment_id (None | str | Unset): Experiment id associated with the traces. metrics_testing_id (None | str | Unset): Metrics testing id associated with the traces. - logging_method (LoggingMethod | Unset): + logging_method (LoggingMethod | str | Unset): client_version (None | str | Unset): reliable (bool | Unset): Whether or not to use reliable logging. If set to False, the method will respond immediately before verifying that the traces have been successfully ingested, and no error message will be @@ -39,7 +39,7 @@ class LogTraceUpdateRequest: log_stream_id: None | str | Unset = UNSET experiment_id: None | str | Unset = UNSET metrics_testing_id: None | str | Unset = UNSET - logging_method: LoggingMethod | Unset = UNSET + logging_method: LoggingMethod | str | Unset = UNSET client_version: None | str | Unset = UNSET reliable: bool | Unset = True input_: None | str | Unset = UNSET @@ -71,9 +71,13 @@ def to_dict(self) -> dict[str, Any]: else: metrics_testing_id = self.metrics_testing_id - logging_method: str | Unset = UNSET - if not isinstance(self.logging_method, Unset): + logging_method: str | Unset + if isinstance(self.logging_method, Unset): + logging_method = UNSET + elif isinstance(self.logging_method, LoggingMethod): logging_method = self.logging_method.value + else: + logging_method = self.logging_method client_version: None | str | Unset if isinstance(self.client_version, Unset): @@ -184,12 +188,22 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) - _logging_method = d.pop("logging_method", UNSET) - logging_method: LoggingMethod | Unset - if isinstance(_logging_method, Unset): - logging_method = UNSET - else: - logging_method = LoggingMethod(_logging_method) + def _parse_logging_method(data: object) -> LoggingMethod | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + logging_method_type_0 = LoggingMethod(data) + + return logging_method_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for logging_method") + return cast(LoggingMethod | str | Unset, data) + + logging_method = _parse_logging_method(d.pop("logging_method", UNSET)) def _parse_client_version(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/log_traces_ingest_request.py b/src/splunk_ao/resources/models/log_traces_ingest_request.py index c449fcff..cdef52ad 100644 --- a/src/splunk_ao/resources/models/log_traces_ingest_request.py +++ b/src/splunk_ao/resources/models/log_traces_ingest_request.py @@ -25,7 +25,7 @@ class LogTracesIngestRequest: log_stream_id (None | str | Unset): Log stream id associated with the traces. experiment_id (None | str | Unset): Experiment id associated with the traces. metrics_testing_id (None | str | Unset): Metrics testing id associated with the traces. - logging_method (LoggingMethod | Unset): + logging_method (LoggingMethod | str | Unset): client_version (None | str | Unset): reliable (bool | Unset): Whether or not to use reliable logging. If set to False, the method will respond immediately before verifying that the traces have been successfully ingested, and no error message will be @@ -43,7 +43,7 @@ class LogTracesIngestRequest: log_stream_id: None | str | Unset = UNSET experiment_id: None | str | Unset = UNSET metrics_testing_id: None | str | Unset = UNSET - logging_method: LoggingMethod | Unset = UNSET + logging_method: LoggingMethod | str | Unset = UNSET client_version: None | str | Unset = UNSET reliable: bool | Unset = True session_id: None | str | Unset = UNSET @@ -76,9 +76,13 @@ def to_dict(self) -> dict[str, Any]: else: metrics_testing_id = self.metrics_testing_id - logging_method: str | Unset = UNSET - if not isinstance(self.logging_method, Unset): + logging_method: str | Unset + if isinstance(self.logging_method, Unset): + logging_method = UNSET + elif isinstance(self.logging_method, LoggingMethod): logging_method = self.logging_method.value + else: + logging_method = self.logging_method client_version: None | str | Unset if isinstance(self.client_version, Unset): @@ -169,12 +173,22 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) - _logging_method = d.pop("logging_method", UNSET) - logging_method: LoggingMethod | Unset - if isinstance(_logging_method, Unset): - logging_method = UNSET - else: - logging_method = LoggingMethod(_logging_method) + def _parse_logging_method(data: object) -> LoggingMethod | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + logging_method_type_0 = LoggingMethod(data) + + return logging_method_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for logging_method") + return cast(LoggingMethod | str | Unset, data) + + logging_method = _parse_logging_method(d.pop("logging_method", UNSET)) def _parse_client_version(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/mcp_approval_request_event.py b/src/splunk_ao/resources/models/mcp_approval_request_event.py index 75c924ab..d2531689 100644 --- a/src/splunk_ao/resources/models/mcp_approval_request_event.py +++ b/src/splunk_ao/resources/models/mcp_approval_request_event.py @@ -24,7 +24,7 @@ class MCPApprovalRequestEvent: Attributes: type_ (Literal['mcp_approval_request'] | Unset): Default: 'mcp_approval_request'. id (None | str | Unset): Unique identifier for the event - status (EventStatus | None | Unset): Status of the event + status (EventStatus | None | str | Unset): Status of the event metadata (MCPApprovalRequestEventMetadataType0 | None | Unset): Provider-specific metadata and additional fields error_message (None | str | Unset): Error message if the event failed tool_name (None | str | Unset): Name of the MCP tool requiring approval @@ -35,7 +35,7 @@ class MCPApprovalRequestEvent: type_: Literal["mcp_approval_request"] | Unset = "mcp_approval_request" id: None | str | Unset = UNSET - status: EventStatus | None | Unset = UNSET + status: EventStatus | None | str | Unset = UNSET metadata: MCPApprovalRequestEventMetadataType0 | None | Unset = UNSET error_message: None | str | Unset = UNSET tool_name: None | str | Unset = UNSET @@ -142,7 +142,7 @@ def _parse_id(data: object) -> None | str | Unset: id = _parse_id(d.pop("id", UNSET)) - def _parse_status(data: object) -> EventStatus | None | Unset: + def _parse_status(data: object) -> EventStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -155,7 +155,9 @@ def _parse_status(data: object) -> EventStatus | None | Unset: return status_type_0 except: # noqa: E722 pass - return cast(EventStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for status") + return cast(EventStatus | None | str | Unset, data) status = _parse_status(d.pop("status", UNSET)) diff --git a/src/splunk_ao/resources/models/mcp_call_event.py b/src/splunk_ao/resources/models/mcp_call_event.py index 10d1425e..6e6b5d32 100644 --- a/src/splunk_ao/resources/models/mcp_call_event.py +++ b/src/splunk_ao/resources/models/mcp_call_event.py @@ -28,7 +28,7 @@ class MCPCallEvent: Attributes: type_ (Literal['mcp_call'] | Unset): Default: 'mcp_call'. id (None | str | Unset): Unique identifier for the event - status (EventStatus | None | Unset): Status of the event + status (EventStatus | None | str | Unset): Status of the event metadata (MCPCallEventMetadataType0 | None | Unset): Provider-specific metadata and additional fields error_message (None | str | Unset): Error message if the event failed tool_name (None | str | Unset): Name of the MCP tool being called @@ -39,7 +39,7 @@ class MCPCallEvent: type_: Literal["mcp_call"] | Unset = "mcp_call" id: None | str | Unset = UNSET - status: EventStatus | None | Unset = UNSET + status: EventStatus | None | str | Unset = UNSET metadata: MCPCallEventMetadataType0 | None | Unset = UNSET error_message: None | str | Unset = UNSET tool_name: None | str | Unset = UNSET @@ -155,7 +155,7 @@ def _parse_id(data: object) -> None | str | Unset: id = _parse_id(d.pop("id", UNSET)) - def _parse_status(data: object) -> EventStatus | None | Unset: + def _parse_status(data: object) -> EventStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -168,7 +168,9 @@ def _parse_status(data: object) -> EventStatus | None | Unset: return status_type_0 except: # noqa: E722 pass - return cast(EventStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for status") + return cast(EventStatus | None | str | Unset, data) status = _parse_status(d.pop("status", UNSET)) diff --git a/src/splunk_ao/resources/models/mcp_list_tools_event.py b/src/splunk_ao/resources/models/mcp_list_tools_event.py index 3cb850b8..d2f378f8 100644 --- a/src/splunk_ao/resources/models/mcp_list_tools_event.py +++ b/src/splunk_ao/resources/models/mcp_list_tools_event.py @@ -24,7 +24,7 @@ class MCPListToolsEvent: Attributes: type_ (Literal['mcp_list_tools'] | Unset): Default: 'mcp_list_tools'. id (None | str | Unset): Unique identifier for the event - status (EventStatus | None | Unset): Status of the event + status (EventStatus | None | str | Unset): Status of the event metadata (MCPListToolsEventMetadataType0 | None | Unset): Provider-specific metadata and additional fields error_message (None | str | Unset): Error message if the event failed server_name (None | str | Unset): Name of the MCP server @@ -33,7 +33,7 @@ class MCPListToolsEvent: type_: Literal["mcp_list_tools"] | Unset = "mcp_list_tools" id: None | str | Unset = UNSET - status: EventStatus | None | Unset = UNSET + status: EventStatus | None | str | Unset = UNSET metadata: MCPListToolsEventMetadataType0 | None | Unset = UNSET error_message: None | str | Unset = UNSET server_name: None | str | Unset = UNSET @@ -130,7 +130,7 @@ def _parse_id(data: object) -> None | str | Unset: id = _parse_id(d.pop("id", UNSET)) - def _parse_status(data: object) -> EventStatus | None | Unset: + def _parse_status(data: object) -> EventStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -143,7 +143,9 @@ def _parse_status(data: object) -> EventStatus | None | Unset: return status_type_0 except: # noqa: E722 pass - return cast(EventStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for status") + return cast(EventStatus | None | str | Unset, data) status = _parse_status(d.pop("status", UNSET)) diff --git a/src/splunk_ao/resources/models/message.py b/src/splunk_ao/resources/models/message.py index 4402592f..d6c00554 100644 --- a/src/splunk_ao/resources/models/message.py +++ b/src/splunk_ao/resources/models/message.py @@ -23,13 +23,13 @@ class Message: """ Attributes: content (list[FileContentPart | TextContentPart] | str): - role (MessageRole): + role (MessageRole | str): tool_call_id (None | str | Unset): tool_calls (list[ToolCall] | None | Unset): """ content: list[FileContentPart | TextContentPart] | str - role: MessageRole + role: MessageRole | str tool_call_id: None | str | Unset = UNSET tool_calls: list[ToolCall] | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -52,7 +52,11 @@ def to_dict(self) -> dict[str, Any]: else: content = self.content - role = self.role.value + role: str + if isinstance(self.role, MessageRole): + role = self.role.value + else: + role = self.role tool_call_id: None | str | Unset if isinstance(self.tool_call_id, Unset): @@ -124,7 +128,20 @@ def _parse_content_type_1_item(data: object) -> FileContentPart | TextContentPar content = _parse_content(d.pop("content")) - role = MessageRole(d.pop("role")) + def _parse_role(data: object) -> MessageRole | str: + try: + if not isinstance(data, str): + raise TypeError() + role_type_0 = MessageRole(data) + + return role_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for role") + return cast(MessageRole | str, data) + + role = _parse_role(d.pop("role")) def _parse_tool_call_id(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/message_event.py b/src/splunk_ao/resources/models/message_event.py index b8be969b..7ac61578 100644 --- a/src/splunk_ao/resources/models/message_event.py +++ b/src/splunk_ao/resources/models/message_event.py @@ -23,10 +23,10 @@ class MessageEvent: """An output message from the model. Attributes: - role (MessageRole): + role (MessageRole | str): Role of the message sender type_ (Literal['message'] | Unset): Default: 'message'. id (None | str | Unset): Unique identifier for the event - status (EventStatus | None | Unset): Status of the event + status (EventStatus | None | str | Unset): Status of the event metadata (MessageEventMetadataType0 | None | Unset): Provider-specific metadata and additional fields error_message (None | str | Unset): Error message if the event failed content (None | str | Unset): Text content of the message @@ -34,10 +34,10 @@ class MessageEvent: images, etc.) """ - role: MessageRole + role: MessageRole | str type_: Literal["message"] | Unset = "message" id: None | str | Unset = UNSET - status: EventStatus | None | Unset = UNSET + status: EventStatus | None | str | Unset = UNSET metadata: MessageEventMetadataType0 | None | Unset = UNSET error_message: None | str | Unset = UNSET content: None | str | Unset = UNSET @@ -47,7 +47,11 @@ class MessageEvent: def to_dict(self) -> dict[str, Any]: from ..models.message_event_metadata_type_0 import MessageEventMetadataType0 - role = self.role.value + role: str + if isinstance(self.role, MessageRole): + role = self.role.value + else: + role = self.role type_ = self.type_ @@ -123,7 +127,21 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: from ..models.message_event_metadata_type_0 import MessageEventMetadataType0 d = dict(src_dict) - role = MessageRole(d.pop("role")) + + def _parse_role(data: object) -> MessageRole | str: + try: + if not isinstance(data, str): + raise TypeError() + role_type_0 = MessageRole(data) + + return role_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for role") + return cast(MessageRole | str, data) + + role = _parse_role(d.pop("role")) type_ = cast(Literal["message"] | Unset, d.pop("type", UNSET)) if type_ != "message" and not isinstance(type_, Unset): @@ -138,7 +156,7 @@ def _parse_id(data: object) -> None | str | Unset: id = _parse_id(d.pop("id", UNSET)) - def _parse_status(data: object) -> EventStatus | None | Unset: + def _parse_status(data: object) -> EventStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -151,7 +169,9 @@ def _parse_status(data: object) -> EventStatus | None | Unset: return status_type_0 except: # noqa: E722 pass - return cast(EventStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for status") + return cast(EventStatus | None | str | Unset, data) status = _parse_status(d.pop("status", UNSET)) diff --git a/src/splunk_ao/resources/models/messages_list_item.py b/src/splunk_ao/resources/models/messages_list_item.py index 318f824e..0c063853 100644 --- a/src/splunk_ao/resources/models/messages_list_item.py +++ b/src/splunk_ao/resources/models/messages_list_item.py @@ -108,6 +108,8 @@ def _parse_role(data: object) -> MessagesListItemRole | str: return role_type_1 except: # noqa: E722 pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for role") return cast(MessagesListItemRole | str, data) role = _parse_role(d.pop("role")) diff --git a/src/splunk_ao/resources/models/metadata_filter.py b/src/splunk_ao/resources/models/metadata_filter.py index da12e60c..6ba13bad 100644 --- a/src/splunk_ao/resources/models/metadata_filter.py +++ b/src/splunk_ao/resources/models/metadata_filter.py @@ -17,20 +17,24 @@ class MetadataFilter: """Filters on metadata key-value pairs in scorer jobs. Attributes: - operator (MetadataFilterOperator): + operator (MetadataFilterOperator | str): key (str): value (list[str] | str): name (Literal['metadata'] | Unset): Default: 'metadata'. """ - operator: MetadataFilterOperator + operator: MetadataFilterOperator | str key: str value: list[str] | str name: Literal["metadata"] | Unset = "metadata" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, MetadataFilterOperator): + operator = self.operator.value + else: + operator = self.operator key = self.key @@ -54,7 +58,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = MetadataFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> MetadataFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = MetadataFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(MetadataFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) key = d.pop("key") diff --git a/src/splunk_ao/resources/models/metric_aggregation_detail.py b/src/splunk_ao/resources/models/metric_aggregation_detail.py index 42f9904b..11c8ce72 100644 --- a/src/splunk_ao/resources/models/metric_aggregation_detail.py +++ b/src/splunk_ao/resources/models/metric_aggregation_detail.py @@ -1,7 +1,7 @@ from __future__ import annotations from collections.abc import Mapping -from typing import Any, TypeVar +from typing import Any, TypeVar, cast from attrs import define as _attrs_define from attrs import field as _attrs_field @@ -17,12 +17,12 @@ class MetricAggregationDetail: Attributes: id (str): Identifier for the metric in the response (e.g., 'w1', 'w2') metric_name (str): Name of the metric to aggregate - aggregation (MetricAggregation): + aggregation (MetricAggregation | str): Aggregation type to apply """ id: str metric_name: str - aggregation: MetricAggregation + aggregation: MetricAggregation | str additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -30,7 +30,11 @@ def to_dict(self) -> dict[str, Any]: metric_name = self.metric_name - aggregation = self.aggregation.value + aggregation: str + if isinstance(self.aggregation, MetricAggregation): + aggregation = self.aggregation.value + else: + aggregation = self.aggregation field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -45,7 +49,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: metric_name = d.pop("metric_name") - aggregation = MetricAggregation(d.pop("aggregation")) + def _parse_aggregation(data: object) -> MetricAggregation | str: + try: + if not isinstance(data, str): + raise TypeError() + aggregation_type_0 = MetricAggregation(data) + + return aggregation_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for aggregation") + return cast(MetricAggregation | str, data) + + aggregation = _parse_aggregation(d.pop("aggregation")) metric_aggregation_detail = cls(id=id, metric_name=metric_name, aggregation=aggregation) diff --git a/src/splunk_ao/resources/models/metric_computation.py b/src/splunk_ao/resources/models/metric_computation.py index c2388233..ed0569ad 100644 --- a/src/splunk_ao/resources/models/metric_computation.py +++ b/src/splunk_ao/resources/models/metric_computation.py @@ -22,13 +22,13 @@ class MetricComputation: Attributes: value (float | int | list[float | int | None | str] | MetricComputationValueType4 | None | str | Unset): execution_time (float | None | Unset): - status (MetricComputationStatus | None | Unset): + status (MetricComputationStatus | None | str | Unset): error_message (None | str | Unset): """ value: float | int | list[float | int | None | str] | MetricComputationValueType4 | None | str | Unset = UNSET execution_time: float | None | Unset = UNSET - status: MetricComputationStatus | None | Unset = UNSET + status: MetricComputationStatus | None | str | Unset = UNSET error_message: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -139,7 +139,7 @@ def _parse_execution_time(data: object) -> float | None | Unset: execution_time = _parse_execution_time(d.pop("execution_time", UNSET)) - def _parse_status(data: object) -> MetricComputationStatus | None | Unset: + def _parse_status(data: object) -> MetricComputationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -152,7 +152,9 @@ def _parse_status(data: object) -> MetricComputationStatus | None | Unset: return status_type_0 except: # noqa: E722 pass - return cast(MetricComputationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for status") + return cast(MetricComputationStatus | None | str | Unset, data) status = _parse_status(d.pop("status", UNSET)) diff --git a/src/splunk_ao/resources/models/metric_computing.py b/src/splunk_ao/resources/models/metric_computing.py index ad2e65c5..71af339d 100644 --- a/src/splunk_ao/resources/models/metric_computing.py +++ b/src/splunk_ao/resources/models/metric_computing.py @@ -17,13 +17,13 @@ class MetricComputing: """ Attributes: status_type (Literal['computing'] | Unset): Default: 'computing'. - scorer_type (None | ScorerType | Unset): + scorer_type (None | ScorerType | str | Unset): metric_key_alias (None | str | Unset): message (str | Unset): Default: 'Metric is computing.'. """ status_type: Literal["computing"] | Unset = "computing" - scorer_type: None | ScorerType | Unset = UNSET + scorer_type: None | ScorerType | str | Unset = UNSET metric_key_alias: None | str | Unset = UNSET message: str | Unset = "Metric is computing." additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -68,7 +68,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: if status_type != "computing" and not isinstance(status_type, Unset): raise ValueError(f"status_type must match const 'computing', got '{status_type}'") - def _parse_scorer_type(data: object) -> None | ScorerType | Unset: + def _parse_scorer_type(data: object) -> None | ScorerType | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -81,7 +81,9 @@ def _parse_scorer_type(data: object) -> None | ScorerType | Unset: return scorer_type_type_0 except: # noqa: E722 pass - return cast(None | ScorerType | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for scorer_type") + return cast(None | ScorerType | str | Unset, data) scorer_type = _parse_scorer_type(d.pop("scorer_type", UNSET)) diff --git a/src/splunk_ao/resources/models/metric_error.py b/src/splunk_ao/resources/models/metric_error.py index e949ed56..45a172cf 100644 --- a/src/splunk_ao/resources/models/metric_error.py +++ b/src/splunk_ao/resources/models/metric_error.py @@ -21,7 +21,7 @@ class MetricError: """ Attributes: status_type (Literal['error'] | Unset): Default: 'error'. - scorer_type (None | ScorerType | Unset): + scorer_type (None | ScorerType | str | Unset): metric_key_alias (None | str | Unset): message (None | str | Unset): Default: 'An error occured.'. ems_error_code (int | None | Unset): EMS error code from errors.yaml catalog for this metric error @@ -29,7 +29,7 @@ class MetricError: """ status_type: Literal["error"] | Unset = "error" - scorer_type: None | ScorerType | Unset = UNSET + scorer_type: None | ScorerType | str | Unset = UNSET metric_key_alias: None | str | Unset = UNSET message: None | str | Unset = "An error occured." ems_error_code: int | None | Unset = UNSET @@ -102,7 +102,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: if status_type != "error" and not isinstance(status_type, Unset): raise ValueError(f"status_type must match const 'error', got '{status_type}'") - def _parse_scorer_type(data: object) -> None | ScorerType | Unset: + def _parse_scorer_type(data: object) -> None | ScorerType | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -115,7 +115,9 @@ def _parse_scorer_type(data: object) -> None | ScorerType | Unset: return scorer_type_type_0 except: # noqa: E722 pass - return cast(None | ScorerType | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for scorer_type") + return cast(None | ScorerType | str | Unset, data) scorer_type = _parse_scorer_type(d.pop("scorer_type", UNSET)) diff --git a/src/splunk_ao/resources/models/metric_failed.py b/src/splunk_ao/resources/models/metric_failed.py index 333a0601..87b0e73f 100644 --- a/src/splunk_ao/resources/models/metric_failed.py +++ b/src/splunk_ao/resources/models/metric_failed.py @@ -21,7 +21,7 @@ class MetricFailed: """ Attributes: status_type (Literal['failed'] | Unset): Default: 'failed'. - scorer_type (None | ScorerType | Unset): + scorer_type (None | ScorerType | str | Unset): metric_key_alias (None | str | Unset): message (None | str | Unset): Default: 'Metric failed to compute.'. ems_error_code (int | None | Unset): EMS error code from errors.yaml catalog for this metric failure @@ -29,7 +29,7 @@ class MetricFailed: """ status_type: Literal["failed"] | Unset = "failed" - scorer_type: None | ScorerType | Unset = UNSET + scorer_type: None | ScorerType | str | Unset = UNSET metric_key_alias: None | str | Unset = UNSET message: None | str | Unset = "Metric failed to compute." ems_error_code: int | None | Unset = UNSET @@ -102,7 +102,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: if status_type != "failed" and not isinstance(status_type, Unset): raise ValueError(f"status_type must match const 'failed', got '{status_type}'") - def _parse_scorer_type(data: object) -> None | ScorerType | Unset: + def _parse_scorer_type(data: object) -> None | ScorerType | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -115,7 +115,9 @@ def _parse_scorer_type(data: object) -> None | ScorerType | Unset: return scorer_type_type_0 except: # noqa: E722 pass - return cast(None | ScorerType | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for scorer_type") + return cast(None | ScorerType | str | Unset, data) scorer_type = _parse_scorer_type(d.pop("scorer_type", UNSET)) diff --git a/src/splunk_ao/resources/models/metric_not_applicable.py b/src/splunk_ao/resources/models/metric_not_applicable.py index 53bc8f4d..2a9a4bc6 100644 --- a/src/splunk_ao/resources/models/metric_not_applicable.py +++ b/src/splunk_ao/resources/models/metric_not_applicable.py @@ -21,7 +21,7 @@ class MetricNotApplicable: """ Attributes: status_type (Literal['not_applicable'] | Unset): Default: 'not_applicable'. - scorer_type (None | ScorerType | Unset): + scorer_type (None | ScorerType | str | Unset): metric_key_alias (None | str | Unset): message (str | Unset): Default: 'Metric not applicable.'. ems_error_code (int | None | Unset): EMS error code from errors.yaml catalog for this not-applicable reason @@ -29,7 +29,7 @@ class MetricNotApplicable: """ status_type: Literal["not_applicable"] | Unset = "not_applicable" - scorer_type: None | ScorerType | Unset = UNSET + scorer_type: None | ScorerType | str | Unset = UNSET metric_key_alias: None | str | Unset = UNSET message: str | Unset = "Metric not applicable." ems_error_code: int | None | Unset = UNSET @@ -98,7 +98,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: if status_type != "not_applicable" and not isinstance(status_type, Unset): raise ValueError(f"status_type must match const 'not_applicable', got '{status_type}'") - def _parse_scorer_type(data: object) -> None | ScorerType | Unset: + def _parse_scorer_type(data: object) -> None | ScorerType | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -111,7 +111,9 @@ def _parse_scorer_type(data: object) -> None | ScorerType | Unset: return scorer_type_type_0 except: # noqa: E722 pass - return cast(None | ScorerType | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for scorer_type") + return cast(None | ScorerType | str | Unset, data) scorer_type = _parse_scorer_type(d.pop("scorer_type", UNSET)) diff --git a/src/splunk_ao/resources/models/metric_not_computed.py b/src/splunk_ao/resources/models/metric_not_computed.py index fb7b0f03..7b5b3495 100644 --- a/src/splunk_ao/resources/models/metric_not_computed.py +++ b/src/splunk_ao/resources/models/metric_not_computed.py @@ -17,13 +17,13 @@ class MetricNotComputed: """ Attributes: status_type (Literal['not_computed'] | Unset): Default: 'not_computed'. - scorer_type (None | ScorerType | Unset): + scorer_type (None | ScorerType | str | Unset): metric_key_alias (None | str | Unset): message (str | Unset): Default: 'Metric not computed.'. """ status_type: Literal["not_computed"] | Unset = "not_computed" - scorer_type: None | ScorerType | Unset = UNSET + scorer_type: None | ScorerType | str | Unset = UNSET metric_key_alias: None | str | Unset = UNSET message: str | Unset = "Metric not computed." additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -68,7 +68,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: if status_type != "not_computed" and not isinstance(status_type, Unset): raise ValueError(f"status_type must match const 'not_computed', got '{status_type}'") - def _parse_scorer_type(data: object) -> None | ScorerType | Unset: + def _parse_scorer_type(data: object) -> None | ScorerType | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -81,7 +81,9 @@ def _parse_scorer_type(data: object) -> None | ScorerType | Unset: return scorer_type_type_0 except: # noqa: E722 pass - return cast(None | ScorerType | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for scorer_type") + return cast(None | ScorerType | str | Unset, data) scorer_type = _parse_scorer_type(d.pop("scorer_type", UNSET)) diff --git a/src/splunk_ao/resources/models/metric_pending.py b/src/splunk_ao/resources/models/metric_pending.py index c11297a3..561eca37 100644 --- a/src/splunk_ao/resources/models/metric_pending.py +++ b/src/splunk_ao/resources/models/metric_pending.py @@ -17,12 +17,12 @@ class MetricPending: """ Attributes: status_type (Literal['pending'] | Unset): Default: 'pending'. - scorer_type (None | ScorerType | Unset): + scorer_type (None | ScorerType | str | Unset): metric_key_alias (None | str | Unset): """ status_type: Literal["pending"] | Unset = "pending" - scorer_type: None | ScorerType | Unset = UNSET + scorer_type: None | ScorerType | str | Unset = UNSET metric_key_alias: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -62,7 +62,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: if status_type != "pending" and not isinstance(status_type, Unset): raise ValueError(f"status_type must match const 'pending', got '{status_type}'") - def _parse_scorer_type(data: object) -> None | ScorerType | Unset: + def _parse_scorer_type(data: object) -> None | ScorerType | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -75,7 +75,9 @@ def _parse_scorer_type(data: object) -> None | ScorerType | Unset: return scorer_type_type_0 except: # noqa: E722 pass - return cast(None | ScorerType | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for scorer_type") + return cast(None | ScorerType | str | Unset, data) scorer_type = _parse_scorer_type(d.pop("scorer_type", UNSET)) diff --git a/src/splunk_ao/resources/models/metric_roll_up.py b/src/splunk_ao/resources/models/metric_roll_up.py index d27900fd..8e6a62cb 100644 --- a/src/splunk_ao/resources/models/metric_roll_up.py +++ b/src/splunk_ao/resources/models/metric_roll_up.py @@ -36,7 +36,7 @@ class MetricRollUp: list[list[list[bool | datetime.datetime | Document | FeedbackAggregate | FeedbackRatingDB | float | HallucinationSegment | int | None | Segment | str | UUID]]] | None | Segment | str | UUID): status_type (Literal['roll_up'] | Unset): Default: 'roll_up'. - scorer_type (None | ScorerType | Unset): + scorer_type (None | ScorerType | str | Unset): metric_key_alias (None | str | Unset): explanation (None | str | Unset): cost (float | None | Unset): @@ -117,7 +117,7 @@ class MetricRollUp: | UUID ) status_type: Literal["roll_up"] | Unset = "roll_up" - scorer_type: None | ScorerType | Unset = UNSET + scorer_type: None | ScorerType | str | Unset = UNSET metric_key_alias: None | str | Unset = UNSET explanation: None | str | Unset = UNSET cost: float | None | Unset = UNSET @@ -899,7 +899,7 @@ def _parse_value_type_13_item_item_item( if status_type != "roll_up" and not isinstance(status_type, Unset): raise ValueError(f"status_type must match const 'roll_up', got '{status_type}'") - def _parse_scorer_type(data: object) -> None | ScorerType | Unset: + def _parse_scorer_type(data: object) -> None | ScorerType | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -912,7 +912,9 @@ def _parse_scorer_type(data: object) -> None | ScorerType | Unset: return scorer_type_type_0 except: # noqa: E722 pass - return cast(None | ScorerType | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for scorer_type") + return cast(None | ScorerType | str | Unset, data) scorer_type = _parse_scorer_type(d.pop("scorer_type", UNSET)) diff --git a/src/splunk_ao/resources/models/metric_success.py b/src/splunk_ao/resources/models/metric_success.py index 65f3b633..5445f9a7 100644 --- a/src/splunk_ao/resources/models/metric_success.py +++ b/src/splunk_ao/resources/models/metric_success.py @@ -35,7 +35,7 @@ class MetricSuccess: list[list[list[bool | datetime.datetime | Document | FeedbackAggregate | FeedbackRatingDB | float | HallucinationSegment | int | None | Segment | str | UUID]]] | None | Segment | str | UUID): status_type (Literal['success'] | Unset): Default: 'success'. - scorer_type (None | ScorerType | Unset): + scorer_type (None | ScorerType | str | Unset): metric_key_alias (None | str | Unset): explanation (None | str | Unset): cost (float | None | Unset): @@ -116,7 +116,7 @@ class MetricSuccess: | UUID ) status_type: Literal["success"] | Unset = "success" - scorer_type: None | ScorerType | Unset = UNSET + scorer_type: None | ScorerType | str | Unset = UNSET metric_key_alias: None | str | Unset = UNSET explanation: None | str | Unset = UNSET cost: float | None | Unset = UNSET @@ -908,7 +908,7 @@ def _parse_value_type_13_item_item_item( if status_type != "success" and not isinstance(status_type, Unset): raise ValueError(f"status_type must match const 'success', got '{status_type}'") - def _parse_scorer_type(data: object) -> None | ScorerType | Unset: + def _parse_scorer_type(data: object) -> None | ScorerType | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -921,7 +921,9 @@ def _parse_scorer_type(data: object) -> None | ScorerType | Unset: return scorer_type_type_0 except: # noqa: E722 pass - return cast(None | ScorerType | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for scorer_type") + return cast(None | ScorerType | str | Unset, data) scorer_type = _parse_scorer_type(d.pop("scorer_type", UNSET)) diff --git a/src/splunk_ao/resources/models/metrics_testing_available_columns_request.py b/src/splunk_ao/resources/models/metrics_testing_available_columns_request.py index d1c0dfcc..a61ee643 100644 --- a/src/splunk_ao/resources/models/metrics_testing_available_columns_request.py +++ b/src/splunk_ao/resources/models/metrics_testing_available_columns_request.py @@ -21,7 +21,7 @@ class MetricsTestingAvailableColumnsRequest: log_stream_id (None | str | Unset): Log stream id associated with the traces. experiment_id (None | str | Unset): Experiment id associated with the traces. metrics_testing_id (None | str | Unset): Metrics testing id associated with the traces. - output_type (None | OutputTypeEnum | Unset): Output type of the scorer. Required when metric_key is + output_type (None | OutputTypeEnum | str | Unset): Output type of the scorer. Required when metric_key is REGISTERED_SCORER_VALIDATION; used to determine the data_type for validation columns. cot_enabled (bool | Unset): Whether the metrics testing table is using chain of thought (CoT) enabled scorers. If True, the columns will be generated for CoT enabled scorers. Default: False. @@ -37,7 +37,7 @@ class MetricsTestingAvailableColumnsRequest: log_stream_id: None | str | Unset = UNSET experiment_id: None | str | Unset = UNSET metrics_testing_id: None | str | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET cot_enabled: bool | Unset = False metric_key: str | Unset = "generated_scorer_validation" required_scorers: list[str] | None | Unset = UNSET @@ -146,7 +146,7 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -159,7 +159,9 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/modality_filter.py b/src/splunk_ao/resources/models/modality_filter.py index a7999eb1..e7c46e1c 100644 --- a/src/splunk_ao/resources/models/modality_filter.py +++ b/src/splunk_ao/resources/models/modality_filter.py @@ -18,18 +18,22 @@ class ModalityFilter: Matches if at least one of the specified modalities is present. Attributes: - operator (ModalityFilterOperator): + operator (ModalityFilterOperator | str): value (list[str] | str): name (Literal['modality'] | Unset): Default: 'modality'. """ - operator: ModalityFilterOperator + operator: ModalityFilterOperator | str value: list[str] | str name: Literal["modality"] | Unset = "modality" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, ModalityFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: list[str] | str if isinstance(self.value, list): @@ -51,7 +55,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = ModalityFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> ModalityFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ModalityFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ModalityFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> list[str] | str: try: diff --git a/src/splunk_ao/resources/models/model.py b/src/splunk_ao/resources/models/model.py index ee196bb5..b9fcf217 100644 --- a/src/splunk_ao/resources/models/model.py +++ b/src/splunk_ao/resources/models/model.py @@ -26,17 +26,17 @@ class Model: Attributes: name (str): alias (str): - integration (LLMIntegration | Unset): + integration (LLMIntegration | str | Unset): user_role (None | str | Unset): assistant_role (None | str | Unset): system_supported (bool | Unset): Default: False. - input_modalities (list[ContentModality] | Unset): Input modalities that the model can accept. + input_modalities (list[ContentModality | str] | Unset): Input modalities that the model can accept. alternative_names (list[str] | Unset): Alternative names for the model, used for matching with various current, versioned or legacy names. input_token_limit (int | None | Unset): output_token_limit (int | None | Unset): token_limit (int | None | Unset): - cost_by (ModelCostBy | Unset): + cost_by (ModelCostBy | str | Unset): is_chat (bool | Unset): Default: False. provides_log_probs (bool | Unset): Default: False. formatting_tokens (int | Unset): Default: 0. @@ -54,16 +54,16 @@ class Model: name: str alias: str - integration: LLMIntegration | Unset = UNSET + integration: LLMIntegration | str | Unset = UNSET user_role: None | str | Unset = UNSET assistant_role: None | str | Unset = UNSET system_supported: bool | Unset = False - input_modalities: list[ContentModality] | Unset = UNSET + input_modalities: list[ContentModality | str] | Unset = UNSET alternative_names: list[str] | Unset = UNSET input_token_limit: int | None | Unset = UNSET output_token_limit: int | None | Unset = UNSET token_limit: int | None | Unset = UNSET - cost_by: ModelCostBy | Unset = UNSET + cost_by: ModelCostBy | str | Unset = UNSET is_chat: bool | Unset = False provides_log_probs: bool | Unset = False formatting_tokens: int | Unset = 0 @@ -85,9 +85,13 @@ def to_dict(self) -> dict[str, Any]: alias = self.alias - integration: str | Unset = UNSET - if not isinstance(self.integration, Unset): + integration: str | Unset + if isinstance(self.integration, Unset): + integration = UNSET + elif isinstance(self.integration, LLMIntegration): integration = self.integration.value + else: + integration = self.integration user_role: None | str | Unset if isinstance(self.user_role, Unset): @@ -107,7 +111,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.input_modalities, Unset): input_modalities = [] for input_modalities_item_data in self.input_modalities: - input_modalities_item = input_modalities_item_data.value + input_modalities_item: str + if isinstance(input_modalities_item_data, ContentModality): + input_modalities_item = input_modalities_item_data.value + else: + input_modalities_item = input_modalities_item_data input_modalities.append(input_modalities_item) alternative_names: list[str] | Unset = UNSET @@ -132,9 +140,13 @@ def to_dict(self) -> dict[str, Any]: else: token_limit = self.token_limit - cost_by: str | Unset = UNSET - if not isinstance(self.cost_by, Unset): + cost_by: str | Unset + if isinstance(self.cost_by, Unset): + cost_by = UNSET + elif isinstance(self.cost_by, ModelCostBy): cost_by = self.cost_by.value + else: + cost_by = self.cost_by is_chat = self.is_chat @@ -239,12 +251,22 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: alias = d.pop("alias") - _integration = d.pop("integration", UNSET) - integration: LLMIntegration | Unset - if isinstance(_integration, Unset): - integration = UNSET - else: - integration = LLMIntegration(_integration) + def _parse_integration(data: object) -> LLMIntegration | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + integration_type_0 = LLMIntegration(data) + + return integration_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for integration") + return cast(LLMIntegration | str | Unset, data) + + integration = _parse_integration(d.pop("integration", UNSET)) def _parse_user_role(data: object) -> None | str | Unset: if data is None: @@ -267,11 +289,25 @@ def _parse_assistant_role(data: object) -> None | str | Unset: system_supported = d.pop("system_supported", UNSET) _input_modalities = d.pop("input_modalities", UNSET) - input_modalities: list[ContentModality] | Unset = UNSET + input_modalities: list[ContentModality | str] | Unset = UNSET if _input_modalities is not UNSET: input_modalities = [] for input_modalities_item_data in _input_modalities: - input_modalities_item = ContentModality(input_modalities_item_data) + + def _parse_input_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + input_modalities_item_type_0 = ContentModality(data) + + return input_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_modalities_item") + return cast(ContentModality | str, data) + + input_modalities_item = _parse_input_modalities_item(input_modalities_item_data) input_modalities.append(input_modalities_item) @@ -304,12 +340,22 @@ def _parse_token_limit(data: object) -> int | None | Unset: token_limit = _parse_token_limit(d.pop("token_limit", UNSET)) - _cost_by = d.pop("cost_by", UNSET) - cost_by: ModelCostBy | Unset - if isinstance(_cost_by, Unset): - cost_by = UNSET - else: - cost_by = ModelCostBy(_cost_by) + def _parse_cost_by(data: object) -> ModelCostBy | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + cost_by_type_0 = ModelCostBy(data) + + return cost_by_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for cost_by") + return cast(ModelCostBy | str | Unset, data) + + cost_by = _parse_cost_by(d.pop("cost_by", UNSET)) is_chat = d.pop("is_chat", UNSET) diff --git a/src/splunk_ao/resources/models/model_properties.py b/src/splunk_ao/resources/models/model_properties.py index cf6660e1..bc2e6b40 100644 --- a/src/splunk_ao/resources/models/model_properties.py +++ b/src/splunk_ao/resources/models/model_properties.py @@ -1,7 +1,7 @@ from __future__ import annotations from collections.abc import Mapping -from typing import Any, TypeVar +from typing import Any, TypeVar, cast from attrs import define as _attrs_define from attrs import field as _attrs_field @@ -19,14 +19,14 @@ class ModelProperties: Attributes: alias (str): name (str): - input_modalities (list[ContentModality]): - multimodal_capabilities (list[MultimodalCapability] | Unset): + input_modalities (list[ContentModality | str]): + multimodal_capabilities (list[MultimodalCapability | str] | Unset): """ alias: str name: str - input_modalities: list[ContentModality] - multimodal_capabilities: list[MultimodalCapability] | Unset = UNSET + input_modalities: list[ContentModality | str] + multimodal_capabilities: list[MultimodalCapability | str] | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -36,14 +36,22 @@ def to_dict(self) -> dict[str, Any]: input_modalities = [] for input_modalities_item_data in self.input_modalities: - input_modalities_item = input_modalities_item_data.value + input_modalities_item: str + if isinstance(input_modalities_item_data, ContentModality): + input_modalities_item = input_modalities_item_data.value + else: + input_modalities_item = input_modalities_item_data input_modalities.append(input_modalities_item) multimodal_capabilities: list[str] | Unset = UNSET if not isinstance(self.multimodal_capabilities, Unset): multimodal_capabilities = [] for multimodal_capabilities_item_data in self.multimodal_capabilities: - multimodal_capabilities_item = multimodal_capabilities_item_data.value + multimodal_capabilities_item: str + if isinstance(multimodal_capabilities_item_data, MultimodalCapability): + multimodal_capabilities_item = multimodal_capabilities_item_data.value + else: + multimodal_capabilities_item = multimodal_capabilities_item_data multimodal_capabilities.append(multimodal_capabilities_item) field_dict: dict[str, Any] = {} @@ -64,16 +72,44 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: input_modalities = [] _input_modalities = d.pop("input_modalities") for input_modalities_item_data in _input_modalities: - input_modalities_item = ContentModality(input_modalities_item_data) + + def _parse_input_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + input_modalities_item_type_0 = ContentModality(data) + + return input_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_modalities_item") + return cast(ContentModality | str, data) + + input_modalities_item = _parse_input_modalities_item(input_modalities_item_data) input_modalities.append(input_modalities_item) _multimodal_capabilities = d.pop("multimodal_capabilities", UNSET) - multimodal_capabilities: list[MultimodalCapability] | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | Unset = UNSET if _multimodal_capabilities is not UNSET: multimodal_capabilities = [] for multimodal_capabilities_item_data in _multimodal_capabilities: - multimodal_capabilities_item = MultimodalCapability(multimodal_capabilities_item_data) + + def _parse_multimodal_capabilities_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_item = _parse_multimodal_capabilities_item(multimodal_capabilities_item_data) multimodal_capabilities.append(multimodal_capabilities_item) diff --git a/src/splunk_ao/resources/models/node_name_filter.py b/src/splunk_ao/resources/models/node_name_filter.py index f2cc29ed..79405d82 100644 --- a/src/splunk_ao/resources/models/node_name_filter.py +++ b/src/splunk_ao/resources/models/node_name_filter.py @@ -17,20 +17,24 @@ class NodeNameFilter: """Filters on node names in scorer jobs. Attributes: - operator (NodeNameFilterOperator): + operator (NodeNameFilterOperator | str): value (list[str] | str): name (Literal['node_name'] | Unset): Default: 'node_name'. case_sensitive (bool | Unset): Default: True. """ - operator: NodeNameFilterOperator + operator: NodeNameFilterOperator | str value: list[str] | str name: Literal["node_name"] | Unset = "node_name" case_sensitive: bool | Unset = True additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, NodeNameFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: list[str] | str if isinstance(self.value, list): @@ -56,7 +60,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = NodeNameFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> NodeNameFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = NodeNameFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(NodeNameFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> list[str] | str: try: diff --git a/src/splunk_ao/resources/models/numeric_color_constraint.py b/src/splunk_ao/resources/models/numeric_color_constraint.py index ebb214c1..62fa1699 100644 --- a/src/splunk_ao/resources/models/numeric_color_constraint.py +++ b/src/splunk_ao/resources/models/numeric_color_constraint.py @@ -28,20 +28,28 @@ class NumericColorConstraint: {"color": "yellow", "operator": "between", "value": [0.3, 0.7]} Attributes: - color (MetricColor): Allowed colors for metric threshold visualization in the UI. - operator (NumericColorConstraintOperator): + color (MetricColor | str): + operator (NumericColorConstraintOperator | str): value (float | list[float]): """ - color: MetricColor - operator: NumericColorConstraintOperator + color: MetricColor | str + operator: NumericColorConstraintOperator | str value: float | list[float] additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - color = self.color.value + color: str + if isinstance(self.color, MetricColor): + color = self.color.value + else: + color = self.color - operator = self.operator.value + operator: str + if isinstance(self.operator, NumericColorConstraintOperator): + operator = self.operator.value + else: + operator = self.operator value: float | list[float] if isinstance(self.value, list): @@ -59,9 +67,36 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - color = MetricColor(d.pop("color")) - operator = NumericColorConstraintOperator(d.pop("operator")) + def _parse_color(data: object) -> MetricColor | str: + try: + if not isinstance(data, str): + raise TypeError() + color_type_0 = MetricColor(data) + + return color_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for color") + return cast(MetricColor | str, data) + + color = _parse_color(d.pop("color")) + + def _parse_operator(data: object) -> NumericColorConstraintOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = NumericColorConstraintOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(NumericColorConstraintOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> float | list[float]: try: diff --git a/src/splunk_ao/resources/models/output_sexist_scorer.py b/src/splunk_ao/resources/models/output_sexist_scorer.py index f1225ca0..095b85ea 100644 --- a/src/splunk_ao/resources/models/output_sexist_scorer.py +++ b/src/splunk_ao/resources/models/output_sexist_scorer.py @@ -25,14 +25,14 @@ class OutputSexistScorer: name (Literal['output_sexist'] | Unset): Default: 'output_sexist'. filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): List of filters to apply to the scorer. - type_ (OutputSexistScorerType | Unset): Default: OutputSexistScorerType.LUNA. + type_ (OutputSexistScorerType | str | Unset): Default: OutputSexistScorerType.LUNA. model_name (None | str | Unset): Alias of the model to use for the scorer. num_judges (int | None | Unset): Number of judges for the scorer. """ name: Literal["output_sexist"] | Unset = "output_sexist" filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET - type_: OutputSexistScorerType | Unset = OutputSexistScorerType.LUNA + type_: OutputSexistScorerType | str | Unset = OutputSexistScorerType.LUNA model_name: None | str | Unset = UNSET num_judges: int | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -62,9 +62,13 @@ def to_dict(self) -> dict[str, Any]: else: filters = self.filters - type_: str | Unset = UNSET - if not isinstance(self.type_, Unset): + type_: str | Unset + if isinstance(self.type_, Unset): + type_ = UNSET + elif isinstance(self.type_, OutputSexistScorerType): type_ = self.type_.value + else: + type_ = self.type_ model_name: None | str | Unset if isinstance(self.model_name, Unset): @@ -151,12 +155,22 @@ def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter filters = _parse_filters(d.pop("filters", UNSET)) - _type_ = d.pop("type", UNSET) - type_: OutputSexistScorerType | Unset - if isinstance(_type_, Unset): - type_ = UNSET - else: - type_ = OutputSexistScorerType(_type_) + def _parse_type_(data: object) -> OutputSexistScorerType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + type_type_0 = OutputSexistScorerType(data) + + return type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(OutputSexistScorerType | str | Unset, data) + + type_ = _parse_type_(d.pop("type", UNSET)) def _parse_model_name(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/output_toxicity_scorer.py b/src/splunk_ao/resources/models/output_toxicity_scorer.py index 50d34aa7..b8347125 100644 --- a/src/splunk_ao/resources/models/output_toxicity_scorer.py +++ b/src/splunk_ao/resources/models/output_toxicity_scorer.py @@ -25,14 +25,14 @@ class OutputToxicityScorer: name (Literal['output_toxicity'] | Unset): Default: 'output_toxicity'. filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): List of filters to apply to the scorer. - type_ (OutputToxicityScorerType | Unset): Default: OutputToxicityScorerType.LUNA. + type_ (OutputToxicityScorerType | str | Unset): Default: OutputToxicityScorerType.LUNA. model_name (None | str | Unset): Alias of the model to use for the scorer. num_judges (int | None | Unset): Number of judges for the scorer. """ name: Literal["output_toxicity"] | Unset = "output_toxicity" filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET - type_: OutputToxicityScorerType | Unset = OutputToxicityScorerType.LUNA + type_: OutputToxicityScorerType | str | Unset = OutputToxicityScorerType.LUNA model_name: None | str | Unset = UNSET num_judges: int | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -62,9 +62,13 @@ def to_dict(self) -> dict[str, Any]: else: filters = self.filters - type_: str | Unset = UNSET - if not isinstance(self.type_, Unset): + type_: str | Unset + if isinstance(self.type_, Unset): + type_ = UNSET + elif isinstance(self.type_, OutputToxicityScorerType): type_ = self.type_.value + else: + type_ = self.type_ model_name: None | str | Unset if isinstance(self.model_name, Unset): @@ -151,12 +155,22 @@ def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter filters = _parse_filters(d.pop("filters", UNSET)) - _type_ = d.pop("type", UNSET) - type_: OutputToxicityScorerType | Unset - if isinstance(_type_, Unset): - type_ = UNSET - else: - type_ = OutputToxicityScorerType(_type_) + def _parse_type_(data: object) -> OutputToxicityScorerType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + type_type_0 = OutputToxicityScorerType(data) + + return type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(OutputToxicityScorerType | str | Unset, data) + + type_ = _parse_type_(d.pop("type", UNSET)) def _parse_model_name(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/partial_extended_agent_span_record.py b/src/splunk_ao/resources/models/partial_extended_agent_span_record.py index 9e43f42f..0653ebf5 100644 --- a/src/splunk_ao/resources/models/partial_extended_agent_span_record.py +++ b/src/splunk_ao/resources/models/partial_extended_agent_span_record.py @@ -82,7 +82,7 @@ class PartialExtendedAgentSpanRecord: annotations (PartialExtendedAgentSpanRecordAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (PartialExtendedAgentSpanRecordAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (PartialExtendedAgentSpanRecordAnnotationAgreement | Unset): Annotation agreement scores @@ -100,7 +100,7 @@ class PartialExtendedAgentSpanRecord: parent_id (None | Unset | UUID): Galileo ID of the parent of this span is_complete (bool | Unset): Whether the parent trace is complete or not Default: True. step_number (int | None | Unset): Topological step number of the span. - agent_type (AgentType | Unset): + agent_type (AgentType | str | Unset): Agent type. """ type_: Literal["agent"] | Unset = "agent" @@ -134,7 +134,7 @@ class PartialExtendedAgentSpanRecord: feedback_rating_info: PartialExtendedAgentSpanRecordFeedbackRatingInfo | Unset = UNSET annotations: PartialExtendedAgentSpanRecordAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: PartialExtendedAgentSpanRecordAnnotationAggregates | Unset = UNSET annotation_agreement: PartialExtendedAgentSpanRecordAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -147,7 +147,7 @@ class PartialExtendedAgentSpanRecord: parent_id: None | Unset | UUID = UNSET is_complete: bool | Unset = True step_number: int | None | Unset = UNSET - agent_type: AgentType | Unset = UNSET + agent_type: AgentType | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -387,7 +387,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -450,9 +454,13 @@ def to_dict(self) -> dict[str, Any]: else: step_number = self.step_number - agent_type: str | Unset = UNSET - if not isinstance(self.agent_type, Unset): + agent_type: str | Unset + if isinstance(self.agent_type, Unset): + agent_type = UNSET + elif isinstance(self.agent_type, AgentType): agent_type = self.agent_type.value + else: + agent_type = self.agent_type field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -1026,11 +1034,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) @@ -1246,12 +1268,22 @@ def _parse_step_number(data: object) -> int | None | Unset: step_number = _parse_step_number(d.pop("step_number", UNSET)) - _agent_type = d.pop("agent_type", UNSET) - agent_type: AgentType | Unset - if isinstance(_agent_type, Unset): - agent_type = UNSET - else: - agent_type = AgentType(_agent_type) + def _parse_agent_type(data: object) -> AgentType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + agent_type_type_0 = AgentType(data) + + return agent_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for agent_type") + return cast(AgentType | str | Unset, data) + + agent_type = _parse_agent_type(d.pop("agent_type", UNSET)) partial_extended_agent_span_record = cls( type_=type_, diff --git a/src/splunk_ao/resources/models/partial_extended_control_span_record.py b/src/splunk_ao/resources/models/partial_extended_control_span_record.py index d8394ae6..86649a28 100644 --- a/src/splunk_ao/resources/models/partial_extended_control_span_record.py +++ b/src/splunk_ao/resources/models/partial_extended_control_span_record.py @@ -81,7 +81,7 @@ class PartialExtendedControlSpanRecord: annotations (PartialExtendedControlSpanRecordAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (PartialExtendedControlSpanRecordAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (PartialExtendedControlSpanRecordAnnotationAgreement | Unset): Annotation agreement scores @@ -101,9 +101,9 @@ class PartialExtendedControlSpanRecord: step_number (int | None | Unset): Topological step number of the span. control_id (int | None | Unset): Identifier of the control definition that produced this span. agent_name (None | str | Unset): Normalized agent name associated with this control execution. - check_stage (ControlCheckStage | None | Unset): Execution stage where the control ran, typically 'pre' or + check_stage (ControlCheckStage | None | str | Unset): Execution stage where the control ran, typically 'pre' or 'post'. - applies_to (ControlAppliesTo | None | Unset): Parent execution type the control applied to, for example + applies_to (ControlAppliesTo | None | str | Unset): Parent execution type the control applied to, for example 'llm_call' or 'tool_call'. evaluator_name (None | str | Unset): Representative evaluator name for this control span. For composite controls, this is the primary evaluator chosen for observability identity. @@ -138,7 +138,7 @@ class PartialExtendedControlSpanRecord: feedback_rating_info: PartialExtendedControlSpanRecordFeedbackRatingInfo | Unset = UNSET annotations: PartialExtendedControlSpanRecordAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: PartialExtendedControlSpanRecordAnnotationAggregates | Unset = UNSET annotation_agreement: PartialExtendedControlSpanRecordAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -153,8 +153,8 @@ class PartialExtendedControlSpanRecord: step_number: int | None | Unset = UNSET control_id: int | None | Unset = UNSET agent_name: None | str | Unset = UNSET - check_stage: ControlCheckStage | None | Unset = UNSET - applies_to: ControlAppliesTo | None | Unset = UNSET + check_stage: ControlCheckStage | None | str | Unset = UNSET + applies_to: ControlAppliesTo | None | str | Unset = UNSET evaluator_name: None | str | Unset = UNSET selector_path: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -359,7 +359,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -939,11 +943,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) @@ -1067,7 +1085,7 @@ def _parse_agent_name(data: object) -> None | str | Unset: agent_name = _parse_agent_name(d.pop("agent_name", UNSET)) - def _parse_check_stage(data: object) -> ControlCheckStage | None | Unset: + def _parse_check_stage(data: object) -> ControlCheckStage | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -1080,11 +1098,13 @@ def _parse_check_stage(data: object) -> ControlCheckStage | None | Unset: return check_stage_type_0 except: # noqa: E722 pass - return cast(ControlCheckStage | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for check_stage") + return cast(ControlCheckStage | None | str | Unset, data) check_stage = _parse_check_stage(d.pop("check_stage", UNSET)) - def _parse_applies_to(data: object) -> ControlAppliesTo | None | Unset: + def _parse_applies_to(data: object) -> ControlAppliesTo | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -1097,7 +1117,9 @@ def _parse_applies_to(data: object) -> ControlAppliesTo | None | Unset: return applies_to_type_0 except: # noqa: E722 pass - return cast(ControlAppliesTo | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for applies_to") + return cast(ControlAppliesTo | None | str | Unset, data) applies_to = _parse_applies_to(d.pop("applies_to", UNSET)) diff --git a/src/splunk_ao/resources/models/partial_extended_llm_span_record.py b/src/splunk_ao/resources/models/partial_extended_llm_span_record.py index e43a1b21..87dc3f5f 100644 --- a/src/splunk_ao/resources/models/partial_extended_llm_span_record.py +++ b/src/splunk_ao/resources/models/partial_extended_llm_span_record.py @@ -77,7 +77,7 @@ class PartialExtendedLlmSpanRecord: the record annotations (PartialExtendedLlmSpanRecordAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (PartialExtendedLlmSpanRecordAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (PartialExtendedLlmSpanRecordAnnotationAgreement | Unset): Annotation agreement scores @@ -132,7 +132,7 @@ class PartialExtendedLlmSpanRecord: feedback_rating_info: PartialExtendedLlmSpanRecordFeedbackRatingInfo | Unset = UNSET annotations: PartialExtendedLlmSpanRecordAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: PartialExtendedLlmSpanRecordAnnotationAggregates | Unset = UNSET annotation_agreement: PartialExtendedLlmSpanRecordAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -338,7 +338,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -856,11 +860,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) diff --git a/src/splunk_ao/resources/models/partial_extended_retriever_span_record.py b/src/splunk_ao/resources/models/partial_extended_retriever_span_record.py index 8a1fb446..9b1dc4bd 100644 --- a/src/splunk_ao/resources/models/partial_extended_retriever_span_record.py +++ b/src/splunk_ao/resources/models/partial_extended_retriever_span_record.py @@ -80,7 +80,7 @@ class PartialExtendedRetrieverSpanRecord: annotations (PartialExtendedRetrieverSpanRecordAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (PartialExtendedRetrieverSpanRecordAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (PartialExtendedRetrieverSpanRecordAnnotationAgreement | Unset): Annotation agreement @@ -127,7 +127,7 @@ class PartialExtendedRetrieverSpanRecord: feedback_rating_info: PartialExtendedRetrieverSpanRecordFeedbackRatingInfo | Unset = UNSET annotations: PartialExtendedRetrieverSpanRecordAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: PartialExtendedRetrieverSpanRecordAnnotationAggregates | Unset = UNSET annotation_agreement: PartialExtendedRetrieverSpanRecordAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -305,7 +305,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -736,11 +740,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) diff --git a/src/splunk_ao/resources/models/partial_extended_session_record.py b/src/splunk_ao/resources/models/partial_extended_session_record.py index 3330234c..6d8b2978 100644 --- a/src/splunk_ao/resources/models/partial_extended_session_record.py +++ b/src/splunk_ao/resources/models/partial_extended_session_record.py @@ -74,7 +74,7 @@ class PartialExtendedSessionRecord: the record annotations (PartialExtendedSessionRecordAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (PartialExtendedSessionRecordAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (PartialExtendedSessionRecordAnnotationAgreement | Unset): Annotation agreement scores @@ -124,7 +124,7 @@ class PartialExtendedSessionRecord: feedback_rating_info: PartialExtendedSessionRecordFeedbackRatingInfo | Unset = UNSET annotations: PartialExtendedSessionRecordAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: PartialExtendedSessionRecordAnnotationAggregates | Unset = UNSET annotation_agreement: PartialExtendedSessionRecordAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -373,7 +373,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -992,11 +996,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) diff --git a/src/splunk_ao/resources/models/partial_extended_tool_span_record.py b/src/splunk_ao/resources/models/partial_extended_tool_span_record.py index e203543c..3cde50a7 100644 --- a/src/splunk_ao/resources/models/partial_extended_tool_span_record.py +++ b/src/splunk_ao/resources/models/partial_extended_tool_span_record.py @@ -70,7 +70,7 @@ class PartialExtendedToolSpanRecord: annotations (PartialExtendedToolSpanRecordAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (PartialExtendedToolSpanRecordAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (PartialExtendedToolSpanRecordAnnotationAgreement | Unset): Annotation agreement scores @@ -118,7 +118,7 @@ class PartialExtendedToolSpanRecord: feedback_rating_info: PartialExtendedToolSpanRecordFeedbackRatingInfo | Unset = UNSET annotations: PartialExtendedToolSpanRecordAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: PartialExtendedToolSpanRecordAnnotationAggregates | Unset = UNSET annotation_agreement: PartialExtendedToolSpanRecordAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -288,7 +288,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -707,11 +711,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) diff --git a/src/splunk_ao/resources/models/partial_extended_trace_record.py b/src/splunk_ao/resources/models/partial_extended_trace_record.py index 680c27fd..4fb0658b 100644 --- a/src/splunk_ao/resources/models/partial_extended_trace_record.py +++ b/src/splunk_ao/resources/models/partial_extended_trace_record.py @@ -70,7 +70,7 @@ class PartialExtendedTraceRecord: record annotations (PartialExtendedTraceRecordAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (PartialExtendedTraceRecordAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (PartialExtendedTraceRecordAnnotationAgreement | Unset): Annotation agreement scores keyed @@ -116,7 +116,7 @@ class PartialExtendedTraceRecord: feedback_rating_info: PartialExtendedTraceRecordFeedbackRatingInfo | Unset = UNSET annotations: PartialExtendedTraceRecordAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: PartialExtendedTraceRecordAnnotationAggregates | Unset = UNSET annotation_agreement: PartialExtendedTraceRecordAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -333,7 +333,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -861,11 +865,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) diff --git a/src/splunk_ao/resources/models/partial_extended_workflow_span_record.py b/src/splunk_ao/resources/models/partial_extended_workflow_span_record.py index d3044d19..89eac9bb 100644 --- a/src/splunk_ao/resources/models/partial_extended_workflow_span_record.py +++ b/src/splunk_ao/resources/models/partial_extended_workflow_span_record.py @@ -84,7 +84,7 @@ class PartialExtendedWorkflowSpanRecord: annotations (PartialExtendedWorkflowSpanRecordAnnotations | Unset): Annotations keyed by template ID and annotator ID file_ids (list[str] | Unset): IDs of files associated with this record - file_modalities (list[ContentModality] | Unset): Modalities of files associated with this record + file_modalities (list[ContentModality | str] | Unset): Modalities of files associated with this record annotation_aggregates (PartialExtendedWorkflowSpanRecordAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (PartialExtendedWorkflowSpanRecordAnnotationAgreement | Unset): Annotation agreement scores @@ -135,7 +135,7 @@ class PartialExtendedWorkflowSpanRecord: feedback_rating_info: PartialExtendedWorkflowSpanRecordFeedbackRatingInfo | Unset = UNSET annotations: PartialExtendedWorkflowSpanRecordAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: PartialExtendedWorkflowSpanRecordAnnotationAggregates | Unset = UNSET annotation_agreement: PartialExtendedWorkflowSpanRecordAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET @@ -389,7 +389,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.file_modalities, Unset): file_modalities = [] for file_modalities_item_data in self.file_modalities: - file_modalities_item = file_modalities_item_data.value + file_modalities_item: str + if isinstance(file_modalities_item_data, ContentModality): + file_modalities_item = file_modalities_item_data.value + else: + file_modalities_item = file_modalities_item_data file_modalities.append(file_modalities_item) annotation_aggregates: dict[str, Any] | Unset = UNSET @@ -1028,11 +1032,25 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: file_ids = cast(list[str], d.pop("file_ids", UNSET)) _file_modalities = d.pop("file_modalities", UNSET) - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET if _file_modalities is not UNSET: file_modalities = [] for file_modalities_item_data in _file_modalities: - file_modalities_item = ContentModality(file_modalities_item_data) + + def _parse_file_modalities_item(data: object) -> ContentModality | str: + try: + if not isinstance(data, str): + raise TypeError() + file_modalities_item_type_0 = ContentModality(data) + + return file_modalities_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for file_modalities_item") + return cast(ContentModality | str, data) + + file_modalities_item = _parse_file_modalities_item(file_modalities_item_data) file_modalities.append(file_modalities_item) diff --git a/src/splunk_ao/resources/models/permission.py b/src/splunk_ao/resources/models/permission.py index 94e3c14a..ef0b52da 100644 --- a/src/splunk_ao/resources/models/permission.py +++ b/src/splunk_ao/resources/models/permission.py @@ -31,7 +31,7 @@ class Permission: Attributes: action (AnnotationQueueAction | ApiKeyAction | ControlResourceAction | DatasetAction | FineTunedScorerAction | GeneratedScorerAction | GroupAction | GroupMemberAction | IntegrationAction | OrganizationAction | ProjectAction - | RegisteredScorerAction | ScorerAction | UserAction): + | RegisteredScorerAction | ScorerAction | str | UserAction): allowed (bool): message (None | str | Unset): """ @@ -50,6 +50,7 @@ class Permission: | ProjectAction | RegisteredScorerAction | ScorerAction + | str | UserAction ) allowed: bool @@ -84,8 +85,10 @@ def to_dict(self) -> dict[str, Any]: action = self.action.value elif isinstance(self.action, AnnotationQueueAction): action = self.action.value - else: + elif isinstance(self.action, ControlResourceAction): action = self.action.value + else: + action = self.action allowed = self.allowed @@ -123,6 +126,7 @@ def _parse_action( | ProjectAction | RegisteredScorerAction | ScorerAction + | str | UserAction ): try: @@ -229,11 +233,34 @@ def _parse_action( return action_type_12 except: # noqa: E722 pass - if not isinstance(data, str): - raise TypeError() - action_type_13 = ControlResourceAction(data) + try: + if not isinstance(data, str): + raise TypeError() + action_type_13 = ControlResourceAction(data) - return action_type_13 + return action_type_13 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for action") + return cast( + AnnotationQueueAction + | ApiKeyAction + | ControlResourceAction + | DatasetAction + | FineTunedScorerAction + | GeneratedScorerAction + | GroupAction + | GroupMemberAction + | IntegrationAction + | OrganizationAction + | ProjectAction + | RegisteredScorerAction + | ScorerAction + | str + | UserAction, + data, + ) action = _parse_action(d.pop("action")) diff --git a/src/splunk_ao/resources/models/project_create.py b/src/splunk_ao/resources/models/project_create.py index 316a697c..a2df2e1c 100644 --- a/src/splunk_ao/resources/models/project_create.py +++ b/src/splunk_ao/resources/models/project_create.py @@ -18,13 +18,13 @@ class ProjectCreate: Attributes: name (str): created_by (None | str | Unset): - type_ (ProjectType | Unset): + type_ (ProjectType | str | Unset): create_example_templates (bool | Unset): Default: False. """ name: str created_by: None | str | Unset = UNSET - type_: ProjectType | Unset = UNSET + type_: ProjectType | str | Unset = UNSET create_example_templates: bool | Unset = False additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -37,9 +37,13 @@ def to_dict(self) -> dict[str, Any]: else: created_by = self.created_by - type_: str | Unset = UNSET - if not isinstance(self.type_, Unset): + type_: str | Unset + if isinstance(self.type_, Unset): + type_ = UNSET + elif isinstance(self.type_, ProjectType): type_ = self.type_.value + else: + type_ = self.type_ create_example_templates = self.create_example_templates @@ -69,12 +73,22 @@ def _parse_created_by(data: object) -> None | str | Unset: created_by = _parse_created_by(d.pop("created_by", UNSET)) - _type_ = d.pop("type", UNSET) - type_: ProjectType | Unset - if isinstance(_type_, Unset): - type_ = UNSET - else: - type_ = ProjectType(_type_) + def _parse_type_(data: object) -> ProjectType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + type_type_0 = ProjectType(data) + + return type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(ProjectType | str | Unset, data) + + type_ = _parse_type_(d.pop("type", UNSET)) create_example_templates = d.pop("create_example_templates", UNSET) diff --git a/src/splunk_ao/resources/models/project_create_response.py b/src/splunk_ao/resources/models/project_create_response.py index 84c88c6e..603a883c 100644 --- a/src/splunk_ao/resources/models/project_create_response.py +++ b/src/splunk_ao/resources/models/project_create_response.py @@ -22,7 +22,7 @@ class ProjectCreateResponse: updated_at (datetime.datetime): name (None | str | Unset): created_by (None | str | Unset): - type_ (None | ProjectType | Unset): + type_ (None | ProjectType | str | Unset): """ id: str @@ -30,7 +30,7 @@ class ProjectCreateResponse: updated_at: datetime.datetime name: None | str | Unset = UNSET created_by: None | str | Unset = UNSET - type_: None | ProjectType | Unset = UNSET + type_: None | ProjectType | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -99,7 +99,7 @@ def _parse_created_by(data: object) -> None | str | Unset: created_by = _parse_created_by(d.pop("created_by", UNSET)) - def _parse_type_(data: object) -> None | ProjectType | Unset: + def _parse_type_(data: object) -> None | ProjectType | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -112,7 +112,9 @@ def _parse_type_(data: object) -> None | ProjectType | Unset: return type_type_0 except: # noqa: E722 pass - return cast(None | ProjectType | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(None | ProjectType | str | Unset, data) type_ = _parse_type_(d.pop("type", UNSET)) diff --git a/src/splunk_ao/resources/models/project_created_at_filter.py b/src/splunk_ao/resources/models/project_created_at_filter.py index 7a748749..a6ca04c2 100644 --- a/src/splunk_ao/resources/models/project_created_at_filter.py +++ b/src/splunk_ao/resources/models/project_created_at_filter.py @@ -17,18 +17,22 @@ class ProjectCreatedAtFilter: """ Attributes: - operator (ProjectCreatedAtFilterOperator): + operator (ProjectCreatedAtFilterOperator | str): value (datetime.datetime): name (Literal['created_at'] | Unset): Default: 'created_at'. """ - operator: ProjectCreatedAtFilterOperator + operator: ProjectCreatedAtFilterOperator | str value: datetime.datetime name: Literal["created_at"] | Unset = "created_at" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, ProjectCreatedAtFilterOperator): + operator = self.operator.value + else: + operator = self.operator value = self.value.isoformat() @@ -45,7 +49,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = ProjectCreatedAtFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> ProjectCreatedAtFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ProjectCreatedAtFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ProjectCreatedAtFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) value = datetime.datetime.fromisoformat(d.pop("value")) diff --git a/src/splunk_ao/resources/models/project_creator_filter.py b/src/splunk_ao/resources/models/project_creator_filter.py index 9026be9d..68b3a714 100644 --- a/src/splunk_ao/resources/models/project_creator_filter.py +++ b/src/splunk_ao/resources/models/project_creator_filter.py @@ -18,12 +18,12 @@ class ProjectCreatorFilter: Attributes: value (list[str] | str): name (Literal['creator'] | Unset): Default: 'creator'. - operator (ProjectCreatorFilterOperator | Unset): Default: ProjectCreatorFilterOperator.EQ. + operator (ProjectCreatorFilterOperator | str | Unset): Default: ProjectCreatorFilterOperator.EQ. """ value: list[str] | str name: Literal["creator"] | Unset = "creator" - operator: ProjectCreatorFilterOperator | Unset = ProjectCreatorFilterOperator.EQ + operator: ProjectCreatorFilterOperator | str | Unset = ProjectCreatorFilterOperator.EQ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -40,9 +40,13 @@ def to_dict(self) -> dict[str, Any]: name = self.name - operator: str | Unset = UNSET - if not isinstance(self.operator, Unset): + operator: str | Unset + if isinstance(self.operator, Unset): + operator = UNSET + elif isinstance(self.operator, ProjectCreatorFilterOperator): operator = self.operator.value + else: + operator = self.operator field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -84,12 +88,22 @@ def _parse_value_type_1_item(data: object) -> str: if name != "creator" and not isinstance(name, Unset): raise ValueError(f"name must match const 'creator', got '{name}'") - _operator = d.pop("operator", UNSET) - operator: ProjectCreatorFilterOperator | Unset - if isinstance(_operator, Unset): - operator = UNSET - else: - operator = ProjectCreatorFilterOperator(_operator) + def _parse_operator(data: object) -> ProjectCreatorFilterOperator | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ProjectCreatorFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ProjectCreatorFilterOperator | str | Unset, data) + + operator = _parse_operator(d.pop("operator", UNSET)) project_creator_filter = cls(value=value, name=name, operator=operator) diff --git a/src/splunk_ao/resources/models/project_db.py b/src/splunk_ao/resources/models/project_db.py index ca67cbd5..7b844cef 100644 --- a/src/splunk_ao/resources/models/project_db.py +++ b/src/splunk_ao/resources/models/project_db.py @@ -32,7 +32,7 @@ class ProjectDB: updated_at (datetime.datetime): permissions (list[Permission] | Unset): name (None | str | Unset): - type_ (None | ProjectType | Unset): + type_ (None | ProjectType | str | Unset): bookmark (bool | Unset): Default: False. description (None | str | Unset): labels (list[ProjectLabels] | Unset): @@ -46,7 +46,7 @@ class ProjectDB: updated_at: datetime.datetime permissions: list[Permission] | Unset = UNSET name: None | str | Unset = UNSET - type_: None | ProjectType | Unset = UNSET + type_: None | ProjectType | str | Unset = UNSET bookmark: bool | Unset = False description: None | str | Unset = UNSET labels: list[ProjectLabels] | Unset = UNSET @@ -173,7 +173,7 @@ def _parse_name(data: object) -> None | str | Unset: name = _parse_name(d.pop("name", UNSET)) - def _parse_type_(data: object) -> None | ProjectType | Unset: + def _parse_type_(data: object) -> None | ProjectType | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -186,7 +186,9 @@ def _parse_type_(data: object) -> None | ProjectType | Unset: return type_type_0 except: # noqa: E722 pass - return cast(None | ProjectType | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(None | ProjectType | str | Unset, data) type_ = _parse_type_(d.pop("type", UNSET)) diff --git a/src/splunk_ao/resources/models/project_db_thin.py b/src/splunk_ao/resources/models/project_db_thin.py index 624b9ffc..77f3b921 100644 --- a/src/splunk_ao/resources/models/project_db_thin.py +++ b/src/splunk_ao/resources/models/project_db_thin.py @@ -29,7 +29,7 @@ class ProjectDBThin: updated_at (datetime.datetime): permissions (list[Permission] | Unset): name (None | str | Unset): - type_ (None | ProjectType | Unset): + type_ (None | ProjectType | str | Unset): bookmark (bool | Unset): Default: False. """ @@ -40,7 +40,7 @@ class ProjectDBThin: updated_at: datetime.datetime permissions: list[Permission] | Unset = UNSET name: None | str | Unset = UNSET - type_: None | ProjectType | Unset = UNSET + type_: None | ProjectType | str | Unset = UNSET bookmark: bool | Unset = False additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -136,7 +136,7 @@ def _parse_name(data: object) -> None | str | Unset: name = _parse_name(d.pop("name", UNSET)) - def _parse_type_(data: object) -> None | ProjectType | Unset: + def _parse_type_(data: object) -> None | ProjectType | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -149,7 +149,9 @@ def _parse_type_(data: object) -> None | ProjectType | Unset: return type_type_0 except: # noqa: E722 pass - return cast(None | ProjectType | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(None | ProjectType | str | Unset, data) type_ = _parse_type_(d.pop("type", UNSET)) diff --git a/src/splunk_ao/resources/models/project_id_filter.py b/src/splunk_ao/resources/models/project_id_filter.py index ce72aeb0..b21eb674 100644 --- a/src/splunk_ao/resources/models/project_id_filter.py +++ b/src/splunk_ao/resources/models/project_id_filter.py @@ -18,12 +18,12 @@ class ProjectIDFilter: Attributes: value (list[str] | str): name (Literal['id'] | Unset): Default: 'id'. - operator (ProjectIDFilterOperator | Unset): Default: ProjectIDFilterOperator.EQ. + operator (ProjectIDFilterOperator | str | Unset): Default: ProjectIDFilterOperator.EQ. """ value: list[str] | str name: Literal["id"] | Unset = "id" - operator: ProjectIDFilterOperator | Unset = ProjectIDFilterOperator.EQ + operator: ProjectIDFilterOperator | str | Unset = ProjectIDFilterOperator.EQ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -40,9 +40,13 @@ def to_dict(self) -> dict[str, Any]: name = self.name - operator: str | Unset = UNSET - if not isinstance(self.operator, Unset): + operator: str | Unset + if isinstance(self.operator, Unset): + operator = UNSET + elif isinstance(self.operator, ProjectIDFilterOperator): operator = self.operator.value + else: + operator = self.operator field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -84,12 +88,22 @@ def _parse_value_type_1_item(data: object) -> str: if name != "id" and not isinstance(name, Unset): raise ValueError(f"name must match const 'id', got '{name}'") - _operator = d.pop("operator", UNSET) - operator: ProjectIDFilterOperator | Unset - if isinstance(_operator, Unset): - operator = UNSET - else: - operator = ProjectIDFilterOperator(_operator) + def _parse_operator(data: object) -> ProjectIDFilterOperator | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ProjectIDFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ProjectIDFilterOperator | str | Unset, data) + + operator = _parse_operator(d.pop("operator", UNSET)) project_id_filter = cls(value=value, name=name, operator=operator) diff --git a/src/splunk_ao/resources/models/project_name_filter.py b/src/splunk_ao/resources/models/project_name_filter.py index 210ef010..14cea929 100644 --- a/src/splunk_ao/resources/models/project_name_filter.py +++ b/src/splunk_ao/resources/models/project_name_filter.py @@ -16,20 +16,24 @@ class ProjectNameFilter: """ Attributes: - operator (ProjectNameFilterOperator): + operator (ProjectNameFilterOperator | str): value (list[str] | str): name (Literal['name'] | Unset): Default: 'name'. case_sensitive (bool | Unset): Default: True. """ - operator: ProjectNameFilterOperator + operator: ProjectNameFilterOperator | str value: list[str] | str name: Literal["name"] | Unset = "name" case_sensitive: bool | Unset = True additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, ProjectNameFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: list[str] | str if isinstance(self.value, list): @@ -55,7 +59,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = ProjectNameFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> ProjectNameFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ProjectNameFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ProjectNameFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> list[str] | str: try: diff --git a/src/splunk_ao/resources/models/project_runs_filter.py b/src/splunk_ao/resources/models/project_runs_filter.py index 1f7c786e..59161f91 100644 --- a/src/splunk_ao/resources/models/project_runs_filter.py +++ b/src/splunk_ao/resources/models/project_runs_filter.py @@ -16,18 +16,22 @@ class ProjectRunsFilter: """ Attributes: - operator (ProjectRunsFilterOperator): + operator (ProjectRunsFilterOperator | str): value (float | int | list[float] | list[int]): name (Literal['runs'] | Unset): Default: 'runs'. """ - operator: ProjectRunsFilterOperator + operator: ProjectRunsFilterOperator | str value: float | int | list[float] | list[int] name: Literal["runs"] | Unset = "runs" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, ProjectRunsFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: float | int | list[float] | list[int] if isinstance(self.value, list): @@ -52,7 +56,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = ProjectRunsFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> ProjectRunsFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ProjectRunsFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ProjectRunsFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> float | int | list[float] | list[int]: try: diff --git a/src/splunk_ao/resources/models/project_type_filter.py b/src/splunk_ao/resources/models/project_type_filter.py index 5558bb7d..8b2fc30b 100644 --- a/src/splunk_ao/resources/models/project_type_filter.py +++ b/src/splunk_ao/resources/models/project_type_filter.py @@ -16,18 +16,22 @@ class ProjectTypeFilter: """ Attributes: - operator (ProjectTypeFilterOperator): + operator (ProjectTypeFilterOperator | str): value (list[str] | str): name (Literal['type'] | Unset): Default: 'type'. """ - operator: ProjectTypeFilterOperator + operator: ProjectTypeFilterOperator | str value: list[str] | str name: Literal["type"] | Unset = "type" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, ProjectTypeFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: list[str] | str if isinstance(self.value, list): @@ -49,7 +53,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = ProjectTypeFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> ProjectTypeFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ProjectTypeFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ProjectTypeFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> list[str] | str: try: diff --git a/src/splunk_ao/resources/models/project_update_response.py b/src/splunk_ao/resources/models/project_update_response.py index bde5a554..8fdca8b6 100644 --- a/src/splunk_ao/resources/models/project_update_response.py +++ b/src/splunk_ao/resources/models/project_update_response.py @@ -23,7 +23,7 @@ class ProjectUpdateResponse: updated_at (datetime.datetime): name (None | str | Unset): created_by (None | str | Unset): - type_ (None | ProjectType | Unset): + type_ (None | ProjectType | str | Unset): labels (list[ProjectLabels] | Unset): description (None | str | Unset): """ @@ -33,7 +33,7 @@ class ProjectUpdateResponse: updated_at: datetime.datetime name: None | str | Unset = UNSET created_by: None | str | Unset = UNSET - type_: None | ProjectType | Unset = UNSET + type_: None | ProjectType | str | Unset = UNSET labels: list[ProjectLabels] | Unset = UNSET description: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -121,7 +121,7 @@ def _parse_created_by(data: object) -> None | str | Unset: created_by = _parse_created_by(d.pop("created_by", UNSET)) - def _parse_type_(data: object) -> None | ProjectType | Unset: + def _parse_type_(data: object) -> None | ProjectType | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -134,7 +134,9 @@ def _parse_type_(data: object) -> None | ProjectType | Unset: return type_type_0 except: # noqa: E722 pass - return cast(None | ProjectType | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(None | ProjectType | str | Unset, data) type_ = _parse_type_(d.pop("type", UNSET)) diff --git a/src/splunk_ao/resources/models/project_updated_at_filter.py b/src/splunk_ao/resources/models/project_updated_at_filter.py index 9cb89f0d..d78e0205 100644 --- a/src/splunk_ao/resources/models/project_updated_at_filter.py +++ b/src/splunk_ao/resources/models/project_updated_at_filter.py @@ -17,18 +17,22 @@ class ProjectUpdatedAtFilter: """ Attributes: - operator (ProjectUpdatedAtFilterOperator): + operator (ProjectUpdatedAtFilterOperator | str): value (datetime.datetime): name (Literal['updated_at'] | Unset): Default: 'updated_at'. """ - operator: ProjectUpdatedAtFilterOperator + operator: ProjectUpdatedAtFilterOperator | str value: datetime.datetime name: Literal["updated_at"] | Unset = "updated_at" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, ProjectUpdatedAtFilterOperator): + operator = self.operator.value + else: + operator = self.operator value = self.value.isoformat() @@ -45,7 +49,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = ProjectUpdatedAtFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> ProjectUpdatedAtFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ProjectUpdatedAtFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ProjectUpdatedAtFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) value = datetime.datetime.fromisoformat(d.pop("value")) diff --git a/src/splunk_ao/resources/models/prompt_injection_scorer.py b/src/splunk_ao/resources/models/prompt_injection_scorer.py index bc8d3b6d..85f2fd09 100644 --- a/src/splunk_ao/resources/models/prompt_injection_scorer.py +++ b/src/splunk_ao/resources/models/prompt_injection_scorer.py @@ -25,14 +25,14 @@ class PromptInjectionScorer: name (Literal['prompt_injection'] | Unset): Default: 'prompt_injection'. filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): List of filters to apply to the scorer. - type_ (PromptInjectionScorerType | Unset): Default: PromptInjectionScorerType.LUNA. + type_ (PromptInjectionScorerType | str | Unset): Default: PromptInjectionScorerType.LUNA. model_name (None | str | Unset): Alias of the model to use for the scorer. num_judges (int | None | Unset): Number of judges for the scorer. """ name: Literal["prompt_injection"] | Unset = "prompt_injection" filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET - type_: PromptInjectionScorerType | Unset = PromptInjectionScorerType.LUNA + type_: PromptInjectionScorerType | str | Unset = PromptInjectionScorerType.LUNA model_name: None | str | Unset = UNSET num_judges: int | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -62,9 +62,13 @@ def to_dict(self) -> dict[str, Any]: else: filters = self.filters - type_: str | Unset = UNSET - if not isinstance(self.type_, Unset): + type_: str | Unset + if isinstance(self.type_, Unset): + type_ = UNSET + elif isinstance(self.type_, PromptInjectionScorerType): type_ = self.type_.value + else: + type_ = self.type_ model_name: None | str | Unset if isinstance(self.model_name, Unset): @@ -151,12 +155,22 @@ def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter filters = _parse_filters(d.pop("filters", UNSET)) - _type_ = d.pop("type", UNSET) - type_: PromptInjectionScorerType | Unset - if isinstance(_type_, Unset): - type_ = UNSET - else: - type_ = PromptInjectionScorerType(_type_) + def _parse_type_(data: object) -> PromptInjectionScorerType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + type_type_0 = PromptInjectionScorerType(data) + + return type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(PromptInjectionScorerType | str | Unset, data) + + type_ = _parse_type_(d.pop("type", UNSET)) def _parse_model_name(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/prompt_template_created_by_filter.py b/src/splunk_ao/resources/models/prompt_template_created_by_filter.py index 64712f47..9af0fd7b 100644 --- a/src/splunk_ao/resources/models/prompt_template_created_by_filter.py +++ b/src/splunk_ao/resources/models/prompt_template_created_by_filter.py @@ -18,12 +18,13 @@ class PromptTemplateCreatedByFilter: Attributes: value (list[str] | str): name (Literal['creator'] | Unset): Default: 'creator'. - operator (PromptTemplateCreatedByFilterOperator | Unset): Default: PromptTemplateCreatedByFilterOperator.EQ. + operator (PromptTemplateCreatedByFilterOperator | str | Unset): Default: + PromptTemplateCreatedByFilterOperator.EQ. """ value: list[str] | str name: Literal["creator"] | Unset = "creator" - operator: PromptTemplateCreatedByFilterOperator | Unset = PromptTemplateCreatedByFilterOperator.EQ + operator: PromptTemplateCreatedByFilterOperator | str | Unset = PromptTemplateCreatedByFilterOperator.EQ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -40,9 +41,13 @@ def to_dict(self) -> dict[str, Any]: name = self.name - operator: str | Unset = UNSET - if not isinstance(self.operator, Unset): + operator: str | Unset + if isinstance(self.operator, Unset): + operator = UNSET + elif isinstance(self.operator, PromptTemplateCreatedByFilterOperator): operator = self.operator.value + else: + operator = self.operator field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -84,12 +89,22 @@ def _parse_value_type_1_item(data: object) -> str: if name != "creator" and not isinstance(name, Unset): raise ValueError(f"name must match const 'creator', got '{name}'") - _operator = d.pop("operator", UNSET) - operator: PromptTemplateCreatedByFilterOperator | Unset - if isinstance(_operator, Unset): - operator = UNSET - else: - operator = PromptTemplateCreatedByFilterOperator(_operator) + def _parse_operator(data: object) -> PromptTemplateCreatedByFilterOperator | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = PromptTemplateCreatedByFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(PromptTemplateCreatedByFilterOperator | str | Unset, data) + + operator = _parse_operator(d.pop("operator", UNSET)) prompt_template_created_by_filter = cls(value=value, name=name, operator=operator) diff --git a/src/splunk_ao/resources/models/prompt_template_name_filter.py b/src/splunk_ao/resources/models/prompt_template_name_filter.py index b9ffa480..97ecacb5 100644 --- a/src/splunk_ao/resources/models/prompt_template_name_filter.py +++ b/src/splunk_ao/resources/models/prompt_template_name_filter.py @@ -16,20 +16,24 @@ class PromptTemplateNameFilter: """ Attributes: - operator (PromptTemplateNameFilterOperator): + operator (PromptTemplateNameFilterOperator | str): value (list[str] | str): name (Literal['name'] | Unset): Default: 'name'. case_sensitive (bool | Unset): Default: True. """ - operator: PromptTemplateNameFilterOperator + operator: PromptTemplateNameFilterOperator | str value: list[str] | str name: Literal["name"] | Unset = "name" case_sensitive: bool | Unset = True additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, PromptTemplateNameFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: list[str] | str if isinstance(self.value, list): @@ -55,7 +59,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = PromptTemplateNameFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> PromptTemplateNameFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = PromptTemplateNameFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(PromptTemplateNameFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> list[str] | str: try: diff --git a/src/splunk_ao/resources/models/protect_response.py b/src/splunk_ao/resources/models/protect_response.py index 554d30f2..101cc014 100644 --- a/src/splunk_ao/resources/models/protect_response.py +++ b/src/splunk_ao/resources/models/protect_response.py @@ -1,7 +1,7 @@ from __future__ import annotations from collections.abc import Mapping -from typing import TYPE_CHECKING, Any, TypeVar +from typing import TYPE_CHECKING, Any, TypeVar, cast from attrs import define as _attrs_define from attrs import field as _attrs_field @@ -23,12 +23,12 @@ class ProtectResponse: Attributes: text (str): Text from the request after processing the rules. trace_metadata (TraceMetadata): - status (ExecutionStatus | Unset): Status of the execution. + status (ExecutionStatus | str | Unset): Status of the request after processing the rules. """ text: str trace_metadata: TraceMetadata - status: ExecutionStatus | Unset = UNSET + status: ExecutionStatus | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -36,9 +36,13 @@ def to_dict(self) -> dict[str, Any]: trace_metadata = self.trace_metadata.to_dict() - status: str | Unset = UNSET - if not isinstance(self.status, Unset): + status: str | Unset + if isinstance(self.status, Unset): + status = UNSET + elif isinstance(self.status, ExecutionStatus): status = self.status.value + else: + status = self.status field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -57,12 +61,22 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: trace_metadata = TraceMetadata.from_dict(d.pop("trace_metadata")) - _status = d.pop("status", UNSET) - status: ExecutionStatus | Unset - if isinstance(_status, Unset): - status = UNSET - else: - status = ExecutionStatus(_status) + def _parse_status(data: object) -> ExecutionStatus | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + status_type_0 = ExecutionStatus(data) + + return status_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for status") + return cast(ExecutionStatus | str | Unset, data) + + status = _parse_status(d.pop("status", UNSET)) protect_response = cls(text=text, trace_metadata=trace_metadata, status=status) diff --git a/src/splunk_ao/resources/models/reasoning_event.py b/src/splunk_ao/resources/models/reasoning_event.py index e481c009..857b0de0 100644 --- a/src/splunk_ao/resources/models/reasoning_event.py +++ b/src/splunk_ao/resources/models/reasoning_event.py @@ -24,7 +24,7 @@ class ReasoningEvent: Attributes: type_ (Literal['reasoning'] | Unset): Default: 'reasoning'. id (None | str | Unset): Unique identifier for the event - status (EventStatus | None | Unset): Status of the event + status (EventStatus | None | str | Unset): Status of the event metadata (None | ReasoningEventMetadataType0 | Unset): Provider-specific metadata and additional fields error_message (None | str | Unset): Error message if the event failed content (None | str | Unset): The reasoning/thinking content @@ -33,7 +33,7 @@ class ReasoningEvent: type_: Literal["reasoning"] | Unset = "reasoning" id: None | str | Unset = UNSET - status: EventStatus | None | Unset = UNSET + status: EventStatus | None | str | Unset = UNSET metadata: None | ReasoningEventMetadataType0 | Unset = UNSET error_message: None | str | Unset = UNSET content: None | str | Unset = UNSET @@ -130,7 +130,7 @@ def _parse_id(data: object) -> None | str | Unset: id = _parse_id(d.pop("id", UNSET)) - def _parse_status(data: object) -> EventStatus | None | Unset: + def _parse_status(data: object) -> EventStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -143,7 +143,9 @@ def _parse_status(data: object) -> EventStatus | None | Unset: return status_type_0 except: # noqa: E722 pass - return cast(EventStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for status") + return cast(EventStatus | None | str | Unset, data) status = _parse_status(d.pop("status", UNSET)) diff --git a/src/splunk_ao/resources/models/registered_scorer_task_result_response.py b/src/splunk_ao/resources/models/registered_scorer_task_result_response.py index 81d21b16..7bb76696 100644 --- a/src/splunk_ao/resources/models/registered_scorer_task_result_response.py +++ b/src/splunk_ao/resources/models/registered_scorer_task_result_response.py @@ -24,14 +24,14 @@ class RegisteredScorerTaskResultResponse: id (str): created_at (datetime.datetime): updated_at (datetime.datetime): - status (TaskResultStatus): + status (str | TaskResultStatus): result (None | str | Unset | ValidateRegisteredScorerResult): """ id: str created_at: datetime.datetime updated_at: datetime.datetime - status: TaskResultStatus + status: str | TaskResultStatus result: None | str | Unset | ValidateRegisteredScorerResult = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -44,7 +44,11 @@ def to_dict(self) -> dict[str, Any]: updated_at = self.updated_at.isoformat() - status = self.status.value + status: str + if isinstance(self.status, TaskResultStatus): + status = self.status.value + else: + status = self.status result: dict[str, Any] | None | str | Unset if isinstance(self.result, Unset): @@ -73,7 +77,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: updated_at = datetime.datetime.fromisoformat(d.pop("updated_at")) - status = TaskResultStatus(d.pop("status")) + def _parse_status(data: object) -> str | TaskResultStatus: + try: + if not isinstance(data, str): + raise TypeError() + status_type_0 = TaskResultStatus(data) + + return status_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for status") + return cast(str | TaskResultStatus, data) + + status = _parse_status(d.pop("status")) def _parse_result(data: object) -> None | str | Unset | ValidateRegisteredScorerResult: if data is None: diff --git a/src/splunk_ao/resources/models/rule.py b/src/splunk_ao/resources/models/rule.py index 0a4f221a..9cea16ae 100644 --- a/src/splunk_ao/resources/models/rule.py +++ b/src/splunk_ao/resources/models/rule.py @@ -16,19 +16,23 @@ class Rule: """ Attributes: metric (str): Name of the metric. - operator (RuleOperator): + operator (RuleOperator | str): Operator to use for comparison. target_value (float | int | list[Any] | None | str): Value to compare with for this metric (right hand side). """ metric: str - operator: RuleOperator + operator: RuleOperator | str target_value: float | int | list[Any] | None | str additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: metric = self.metric - operator = self.operator.value + operator: str + if isinstance(self.operator, RuleOperator): + operator = self.operator.value + else: + operator = self.operator target_value: float | int | list[Any] | None | str if isinstance(self.target_value, list): @@ -48,7 +52,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) metric = d.pop("metric") - operator = RuleOperator(d.pop("operator")) + def _parse_operator(data: object) -> RuleOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = RuleOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(RuleOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_target_value(data: object) -> float | int | list[Any] | None | str: if data is None: diff --git a/src/splunk_ao/resources/models/rule_result.py b/src/splunk_ao/resources/models/rule_result.py index b37a9ab6..c0130ab7 100644 --- a/src/splunk_ao/resources/models/rule_result.py +++ b/src/splunk_ao/resources/models/rule_result.py @@ -18,17 +18,17 @@ class RuleResult: """ Attributes: metric (str): Name of the metric. - operator (RuleOperator): + operator (RuleOperator | str): Operator to use for comparison. target_value (float | int | list[Any] | None | str): Value to compare with for this metric (right hand side). - status (ExecutionStatus | Unset): Status of the execution. + status (ExecutionStatus | str | Unset): value (Any | None | Unset): Result of the metric computation. execution_time (float | None | Unset): Execution time for the rule in seconds. """ metric: str - operator: RuleOperator + operator: RuleOperator | str target_value: float | int | list[Any] | None | str - status: ExecutionStatus | Unset = UNSET + status: ExecutionStatus | str | Unset = UNSET value: Any | None | Unset = UNSET execution_time: float | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -36,7 +36,11 @@ class RuleResult: def to_dict(self) -> dict[str, Any]: metric = self.metric - operator = self.operator.value + operator: str + if isinstance(self.operator, RuleOperator): + operator = self.operator.value + else: + operator = self.operator target_value: float | int | list[Any] | None | str if isinstance(self.target_value, list): @@ -45,9 +49,13 @@ def to_dict(self) -> dict[str, Any]: else: target_value = self.target_value - status: str | Unset = UNSET - if not isinstance(self.status, Unset): + status: str | Unset + if isinstance(self.status, Unset): + status = UNSET + elif isinstance(self.status, ExecutionStatus): status = self.status.value + else: + status = self.status value: Any | None | Unset if isinstance(self.value, Unset): @@ -78,7 +86,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) metric = d.pop("metric") - operator = RuleOperator(d.pop("operator")) + def _parse_operator(data: object) -> RuleOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = RuleOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(RuleOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_target_value(data: object) -> float | int | list[Any] | None | str: if data is None: @@ -95,12 +116,22 @@ def _parse_target_value(data: object) -> float | int | list[Any] | None | str: target_value = _parse_target_value(d.pop("target_value")) - _status = d.pop("status", UNSET) - status: ExecutionStatus | Unset - if isinstance(_status, Unset): - status = UNSET - else: - status = ExecutionStatus(_status) + def _parse_status(data: object) -> ExecutionStatus | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + status_type_0 = ExecutionStatus(data) + + return status_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for status") + return cast(ExecutionStatus | str | Unset, data) + + status = _parse_status(d.pop("status", UNSET)) def _parse_value(data: object) -> Any | None | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/ruleset_result.py b/src/splunk_ao/resources/models/ruleset_result.py index 605f8a80..95c6372b 100644 --- a/src/splunk_ao/resources/models/ruleset_result.py +++ b/src/splunk_ao/resources/models/ruleset_result.py @@ -23,14 +23,14 @@ class RulesetResult: """ Attributes: - status (ExecutionStatus | Unset): Status of the execution. + status (ExecutionStatus | str | Unset): rules (list[Rule] | Unset): List of rules to evaluate. Atleast 1 rule is required. action (OverrideAction | PassthroughAction | Unset): Action to take if all the rules are met. description (None | str | Unset): Description of the ruleset. rule_results (list[RuleResult] | Unset): Results of the rule execution. """ - status: ExecutionStatus | Unset = UNSET + status: ExecutionStatus | str | Unset = UNSET rules: list[Rule] | Unset = UNSET action: OverrideAction | PassthroughAction | Unset = UNSET description: None | str | Unset = UNSET @@ -40,9 +40,13 @@ class RulesetResult: def to_dict(self) -> dict[str, Any]: from ..models.override_action import OverrideAction - status: str | Unset = UNSET - if not isinstance(self.status, Unset): + status: str | Unset + if isinstance(self.status, Unset): + status = UNSET + elif isinstance(self.status, ExecutionStatus): status = self.status.value + else: + status = self.status rules: list[dict[str, Any]] | Unset = UNSET if not isinstance(self.rules, Unset): @@ -96,12 +100,23 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: from ..models.rule_result import RuleResult d = dict(src_dict) - _status = d.pop("status", UNSET) - status: ExecutionStatus | Unset - if isinstance(_status, Unset): - status = UNSET - else: - status = ExecutionStatus(_status) + + def _parse_status(data: object) -> ExecutionStatus | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + status_type_0 = ExecutionStatus(data) + + return status_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for status") + return cast(ExecutionStatus | str | Unset, data) + + status = _parse_status(d.pop("status", UNSET)) _rules = d.pop("rules", UNSET) rules: list[Rule] | Unset = UNSET diff --git a/src/splunk_ao/resources/models/run_created_at_filter.py b/src/splunk_ao/resources/models/run_created_at_filter.py index 4d120299..c7871760 100644 --- a/src/splunk_ao/resources/models/run_created_at_filter.py +++ b/src/splunk_ao/resources/models/run_created_at_filter.py @@ -17,18 +17,22 @@ class RunCreatedAtFilter: """ Attributes: - operator (RunCreatedAtFilterOperator): + operator (RunCreatedAtFilterOperator | str): value (datetime.datetime): name (Literal['created_at'] | Unset): Default: 'created_at'. """ - operator: RunCreatedAtFilterOperator + operator: RunCreatedAtFilterOperator | str value: datetime.datetime name: Literal["created_at"] | Unset = "created_at" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, RunCreatedAtFilterOperator): + operator = self.operator.value + else: + operator = self.operator value = self.value.isoformat() @@ -45,7 +49,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = RunCreatedAtFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> RunCreatedAtFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = RunCreatedAtFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(RunCreatedAtFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) value = datetime.datetime.fromisoformat(d.pop("value")) diff --git a/src/splunk_ao/resources/models/run_created_by_filter.py b/src/splunk_ao/resources/models/run_created_by_filter.py index 0861bcf2..33628415 100644 --- a/src/splunk_ao/resources/models/run_created_by_filter.py +++ b/src/splunk_ao/resources/models/run_created_by_filter.py @@ -18,12 +18,12 @@ class RunCreatedByFilter: Attributes: value (list[str] | str): name (Literal['created_by'] | Unset): Default: 'created_by'. - operator (RunCreatedByFilterOperator | Unset): Default: RunCreatedByFilterOperator.EQ. + operator (RunCreatedByFilterOperator | str | Unset): Default: RunCreatedByFilterOperator.EQ. """ value: list[str] | str name: Literal["created_by"] | Unset = "created_by" - operator: RunCreatedByFilterOperator | Unset = RunCreatedByFilterOperator.EQ + operator: RunCreatedByFilterOperator | str | Unset = RunCreatedByFilterOperator.EQ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -40,9 +40,13 @@ def to_dict(self) -> dict[str, Any]: name = self.name - operator: str | Unset = UNSET - if not isinstance(self.operator, Unset): + operator: str | Unset + if isinstance(self.operator, Unset): + operator = UNSET + elif isinstance(self.operator, RunCreatedByFilterOperator): operator = self.operator.value + else: + operator = self.operator field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -84,12 +88,22 @@ def _parse_value_type_1_item(data: object) -> str: if name != "created_by" and not isinstance(name, Unset): raise ValueError(f"name must match const 'created_by', got '{name}'") - _operator = d.pop("operator", UNSET) - operator: RunCreatedByFilterOperator | Unset - if isinstance(_operator, Unset): - operator = UNSET - else: - operator = RunCreatedByFilterOperator(_operator) + def _parse_operator(data: object) -> RunCreatedByFilterOperator | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = RunCreatedByFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(RunCreatedByFilterOperator | str | Unset, data) + + operator = _parse_operator(d.pop("operator", UNSET)) run_created_by_filter = cls(value=value, name=name, operator=operator) diff --git a/src/splunk_ao/resources/models/run_db.py b/src/splunk_ao/resources/models/run_db.py index 101e36bf..6bc79da1 100644 --- a/src/splunk_ao/resources/models/run_db.py +++ b/src/splunk_ao/resources/models/run_db.py @@ -35,7 +35,7 @@ class RunDB: dataset_hash (None | str | Unset): dataset_version_id (None | str | Unset): prompt_template_version_id (None | str | Unset): - task_type (None | TaskType | Unset): + task_type (int | None | TaskType | Unset): run_tags (list[RunTagDB] | Unset): example_content_id (None | str | Unset): logged_splits (list[str] | Unset): @@ -55,7 +55,7 @@ class RunDB: dataset_hash: None | str | Unset = UNSET dataset_version_id: None | str | Unset = UNSET prompt_template_version_id: None | str | Unset = UNSET - task_type: None | TaskType | Unset = UNSET + task_type: int | None | TaskType | Unset = UNSET run_tags: list[RunTagDB] | Unset = UNSET example_content_id: None | str | Unset = UNSET logged_splits: list[str] | Unset = UNSET @@ -242,7 +242,7 @@ def _parse_prompt_template_version_id(data: object) -> None | str | Unset: prompt_template_version_id = _parse_prompt_template_version_id(d.pop("prompt_template_version_id", UNSET)) - def _parse_task_type(data: object) -> None | TaskType | Unset: + def _parse_task_type(data: object) -> int | None | TaskType | Unset: if data is None: return data if isinstance(data, Unset): @@ -255,7 +255,9 @@ def _parse_task_type(data: object) -> None | TaskType | Unset: return task_type_type_0 except: # noqa: E722 pass - return cast(None | TaskType | Unset, data) + if type(data) not in (int,): + raise TypeError("Unexpected value type for task_type") + return cast(int | None | TaskType | Unset, data) task_type = _parse_task_type(d.pop("task_type", UNSET)) diff --git a/src/splunk_ao/resources/models/run_db_thin.py b/src/splunk_ao/resources/models/run_db_thin.py index 0bd50e1a..21a63689 100644 --- a/src/splunk_ao/resources/models/run_db_thin.py +++ b/src/splunk_ao/resources/models/run_db_thin.py @@ -35,7 +35,7 @@ class RunDBThin: dataset_hash (None | str | Unset): dataset_version_id (None | str | Unset): prompt_template_version_id (None | str | Unset): - task_type (None | TaskType | Unset): + task_type (int | None | TaskType | Unset): run_tags (list[RunTagDB] | Unset): example_content_id (None | str | Unset): logged_splits (list[str] | Unset): @@ -55,7 +55,7 @@ class RunDBThin: dataset_hash: None | str | Unset = UNSET dataset_version_id: None | str | Unset = UNSET prompt_template_version_id: None | str | Unset = UNSET - task_type: None | TaskType | Unset = UNSET + task_type: int | None | TaskType | Unset = UNSET run_tags: list[RunTagDB] | Unset = UNSET example_content_id: None | str | Unset = UNSET logged_splits: list[str] | Unset = UNSET @@ -242,7 +242,7 @@ def _parse_prompt_template_version_id(data: object) -> None | str | Unset: prompt_template_version_id = _parse_prompt_template_version_id(d.pop("prompt_template_version_id", UNSET)) - def _parse_task_type(data: object) -> None | TaskType | Unset: + def _parse_task_type(data: object) -> int | None | TaskType | Unset: if data is None: return data if isinstance(data, Unset): @@ -255,7 +255,9 @@ def _parse_task_type(data: object) -> None | TaskType | Unset: return task_type_type_0 except: # noqa: E722 pass - return cast(None | TaskType | Unset, data) + if type(data) not in (int,): + raise TypeError("Unexpected value type for task_type") + return cast(int | None | TaskType | Unset, data) task_type = _parse_task_type(d.pop("task_type", UNSET)) diff --git a/src/splunk_ao/resources/models/run_id_filter.py b/src/splunk_ao/resources/models/run_id_filter.py index 99b864be..3c3fac3f 100644 --- a/src/splunk_ao/resources/models/run_id_filter.py +++ b/src/splunk_ao/resources/models/run_id_filter.py @@ -18,12 +18,12 @@ class RunIDFilter: Attributes: value (list[str] | str): name (Literal['id'] | Unset): Default: 'id'. - operator (RunIDFilterOperator | Unset): Default: RunIDFilterOperator.EQ. + operator (RunIDFilterOperator | str | Unset): Default: RunIDFilterOperator.EQ. """ value: list[str] | str name: Literal["id"] | Unset = "id" - operator: RunIDFilterOperator | Unset = RunIDFilterOperator.EQ + operator: RunIDFilterOperator | str | Unset = RunIDFilterOperator.EQ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -40,9 +40,13 @@ def to_dict(self) -> dict[str, Any]: name = self.name - operator: str | Unset = UNSET - if not isinstance(self.operator, Unset): + operator: str | Unset + if isinstance(self.operator, Unset): + operator = UNSET + elif isinstance(self.operator, RunIDFilterOperator): operator = self.operator.value + else: + operator = self.operator field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -84,12 +88,22 @@ def _parse_value_type_1_item(data: object) -> str: if name != "id" and not isinstance(name, Unset): raise ValueError(f"name must match const 'id', got '{name}'") - _operator = d.pop("operator", UNSET) - operator: RunIDFilterOperator | Unset - if isinstance(_operator, Unset): - operator = UNSET - else: - operator = RunIDFilterOperator(_operator) + def _parse_operator(data: object) -> RunIDFilterOperator | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = RunIDFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(RunIDFilterOperator | str | Unset, data) + + operator = _parse_operator(d.pop("operator", UNSET)) run_id_filter = cls(value=value, name=name, operator=operator) diff --git a/src/splunk_ao/resources/models/run_name_filter.py b/src/splunk_ao/resources/models/run_name_filter.py index 11fdc7b1..78de981b 100644 --- a/src/splunk_ao/resources/models/run_name_filter.py +++ b/src/splunk_ao/resources/models/run_name_filter.py @@ -16,20 +16,24 @@ class RunNameFilter: """ Attributes: - operator (RunNameFilterOperator): + operator (RunNameFilterOperator | str): value (list[str] | str): name (Literal['name'] | Unset): Default: 'name'. case_sensitive (bool | Unset): Default: True. """ - operator: RunNameFilterOperator + operator: RunNameFilterOperator | str value: list[str] | str name: Literal["name"] | Unset = "name" case_sensitive: bool | Unset = True additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, RunNameFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: list[str] | str if isinstance(self.value, list): @@ -55,7 +59,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = RunNameFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> RunNameFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = RunNameFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(RunNameFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> list[str] | str: try: diff --git a/src/splunk_ao/resources/models/run_updated_at_filter.py b/src/splunk_ao/resources/models/run_updated_at_filter.py index 3a56b02f..b7f99f24 100644 --- a/src/splunk_ao/resources/models/run_updated_at_filter.py +++ b/src/splunk_ao/resources/models/run_updated_at_filter.py @@ -17,18 +17,22 @@ class RunUpdatedAtFilter: """ Attributes: - operator (RunUpdatedAtFilterOperator): + operator (RunUpdatedAtFilterOperator | str): value (datetime.datetime): name (Literal['updated_at'] | Unset): Default: 'updated_at'. """ - operator: RunUpdatedAtFilterOperator + operator: RunUpdatedAtFilterOperator | str value: datetime.datetime name: Literal["updated_at"] | Unset = "updated_at" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, RunUpdatedAtFilterOperator): + operator = self.operator.value + else: + operator = self.operator value = self.value.isoformat() @@ -45,7 +49,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = RunUpdatedAtFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> RunUpdatedAtFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = RunUpdatedAtFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(RunUpdatedAtFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) value = datetime.datetime.fromisoformat(d.pop("value")) diff --git a/src/splunk_ao/resources/models/scorer_config.py b/src/splunk_ao/resources/models/scorer_config.py index 1c52cc08..5370d6ac 100644 --- a/src/splunk_ao/resources/models/scorer_config.py +++ b/src/splunk_ao/resources/models/scorer_config.py @@ -30,7 +30,7 @@ class ScorerConfig: Attributes: id (str): - scorer_type (ScorerTypes): + scorer_type (ScorerTypes | str): model_name (None | str | Unset): num_judges (int | None | Unset): filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): List of filters to apply to the @@ -39,35 +39,35 @@ class ScorerConfig: to llm/chat. cot_enabled (bool | None | Unset): Whether to enable chain of thought for this scorer. Defaults to False for llm scorers. - output_type (None | OutputTypeEnum | Unset): What type of output to use for model-based scorers (boolean, + output_type (None | OutputTypeEnum | str | Unset): What type of output to use for model-based scorers (boolean, categorical, etc.). - input_type (InputTypeEnum | None | Unset): What type of input to use for model-based scorers + input_type (InputTypeEnum | None | str | Unset): What type of input to use for model-based scorers (sessions_normalized, trace_io_only, etc..). name (None | str | Unset): - model_type (ModelType | None | Unset): Type of model to use for this scorer. slm maps to luna, and llm maps to - plus + model_type (ModelType | None | str | Unset): Type of model to use for this scorer. slm maps to luna, and llm + maps to plus scorer_version (BaseScorerVersionDB | None | Unset): ScorerVersion to use for this scorer. If not provided, the latest version will be used. - multimodal_capabilities (list[MultimodalCapability] | None | Unset): Multimodal capabilities which this scorer - can utilize in its evaluation. - roll_up_method (None | RollUpMethodDisplayOptions | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): Multimodal capabilities which this + scorer can utilize in its evaluation. + roll_up_method (None | RollUpMethodDisplayOptions | str | Unset): score_type (None | str | Unset): Return type of code scorers (e.g., 'bool', 'int', 'float', 'str'). """ id: str - scorer_type: ScorerTypes + scorer_type: ScorerTypes | str model_name: None | str | Unset = UNSET num_judges: int | None | Unset = UNSET filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET scoreable_node_types: list[str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET name: None | str | Unset = UNSET - model_type: ModelType | None | Unset = UNSET + model_type: ModelType | None | str | Unset = UNSET scorer_version: BaseScorerVersionDB | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET - roll_up_method: None | RollUpMethodDisplayOptions | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET + roll_up_method: None | RollUpMethodDisplayOptions | str | Unset = UNSET score_type: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -78,7 +78,11 @@ def to_dict(self) -> dict[str, Any]: id = self.id - scorer_type = self.scorer_type.value + scorer_type: str + if isinstance(self.scorer_type, ScorerTypes): + scorer_type = self.scorer_type.value + else: + scorer_type = self.scorer_type model_name: None | str | Unset if isinstance(self.model_name, Unset): @@ -170,7 +174,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -232,7 +240,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) id = d.pop("id") - scorer_type = ScorerTypes(d.pop("scorer_type")) + def _parse_scorer_type(data: object) -> ScorerTypes | str: + try: + if not isinstance(data, str): + raise TypeError() + scorer_type_type_0 = ScorerTypes(data) + + return scorer_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scorer_type") + return cast(ScorerTypes | str, data) + + scorer_type = _parse_scorer_type(d.pop("scorer_type")) def _parse_model_name(data: object) -> None | str | Unset: if data is None: @@ -324,7 +345,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -337,11 +358,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -354,7 +377,9 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) @@ -367,7 +392,7 @@ def _parse_name(data: object) -> None | str | Unset: name = _parse_name(d.pop("name", UNSET)) - def _parse_model_type(data: object) -> ModelType | None | Unset: + def _parse_model_type(data: object) -> ModelType | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -380,7 +405,9 @@ def _parse_model_type(data: object) -> ModelType | None | Unset: return model_type_type_0 except: # noqa: E722 pass - return cast(ModelType | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for model_type") + return cast(ModelType | None | str | Unset, data) model_type = _parse_model_type(d.pop("model_type", UNSET)) @@ -401,7 +428,7 @@ def _parse_scorer_version(data: object) -> BaseScorerVersionDB | None | Unset: scorer_version = _parse_scorer_version(d.pop("scorer_version", UNSET)) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -412,18 +439,34 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) - def _parse_roll_up_method(data: object) -> None | RollUpMethodDisplayOptions | Unset: + def _parse_roll_up_method(data: object) -> None | RollUpMethodDisplayOptions | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -436,7 +479,9 @@ def _parse_roll_up_method(data: object) -> None | RollUpMethodDisplayOptions | U return roll_up_method_type_0 except: # noqa: E722 pass - return cast(None | RollUpMethodDisplayOptions | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_method") + return cast(None | RollUpMethodDisplayOptions | str | Unset, data) roll_up_method = _parse_roll_up_method(d.pop("roll_up_method", UNSET)) diff --git a/src/splunk_ao/resources/models/scorer_created_at_filter.py b/src/splunk_ao/resources/models/scorer_created_at_filter.py index a6e5edfd..1bbd186e 100644 --- a/src/splunk_ao/resources/models/scorer_created_at_filter.py +++ b/src/splunk_ao/resources/models/scorer_created_at_filter.py @@ -17,18 +17,22 @@ class ScorerCreatedAtFilter: """ Attributes: - operator (ScorerCreatedAtFilterOperator): + operator (ScorerCreatedAtFilterOperator | str): value (datetime.datetime): name (Literal['created_at'] | Unset): Default: 'created_at'. """ - operator: ScorerCreatedAtFilterOperator + operator: ScorerCreatedAtFilterOperator | str value: datetime.datetime name: Literal["created_at"] | Unset = "created_at" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, ScorerCreatedAtFilterOperator): + operator = self.operator.value + else: + operator = self.operator value = self.value.isoformat() @@ -45,7 +49,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = ScorerCreatedAtFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> ScorerCreatedAtFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ScorerCreatedAtFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ScorerCreatedAtFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) value = datetime.datetime.fromisoformat(d.pop("value")) diff --git a/src/splunk_ao/resources/models/scorer_creator_filter.py b/src/splunk_ao/resources/models/scorer_creator_filter.py index e831caa9..77876c3f 100644 --- a/src/splunk_ao/resources/models/scorer_creator_filter.py +++ b/src/splunk_ao/resources/models/scorer_creator_filter.py @@ -18,12 +18,12 @@ class ScorerCreatorFilter: Attributes: value (list[str] | str): name (Literal['creator'] | Unset): Default: 'creator'. - operator (ScorerCreatorFilterOperator | Unset): Default: ScorerCreatorFilterOperator.EQ. + operator (ScorerCreatorFilterOperator | str | Unset): Default: ScorerCreatorFilterOperator.EQ. """ value: list[str] | str name: Literal["creator"] | Unset = "creator" - operator: ScorerCreatorFilterOperator | Unset = ScorerCreatorFilterOperator.EQ + operator: ScorerCreatorFilterOperator | str | Unset = ScorerCreatorFilterOperator.EQ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -40,9 +40,13 @@ def to_dict(self) -> dict[str, Any]: name = self.name - operator: str | Unset = UNSET - if not isinstance(self.operator, Unset): + operator: str | Unset + if isinstance(self.operator, Unset): + operator = UNSET + elif isinstance(self.operator, ScorerCreatorFilterOperator): operator = self.operator.value + else: + operator = self.operator field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -84,12 +88,22 @@ def _parse_value_type_1_item(data: object) -> str: if name != "creator" and not isinstance(name, Unset): raise ValueError(f"name must match const 'creator', got '{name}'") - _operator = d.pop("operator", UNSET) - operator: ScorerCreatorFilterOperator | Unset - if isinstance(_operator, Unset): - operator = UNSET - else: - operator = ScorerCreatorFilterOperator(_operator) + def _parse_operator(data: object) -> ScorerCreatorFilterOperator | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ScorerCreatorFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ScorerCreatorFilterOperator | str | Unset, data) + + operator = _parse_operator(d.pop("operator", UNSET)) scorer_creator_filter = cls(value=value, name=name, operator=operator) diff --git a/src/splunk_ao/resources/models/scorer_defaults.py b/src/splunk_ao/resources/models/scorer_defaults.py index 513fccad..93ce4cea 100644 --- a/src/splunk_ao/resources/models/scorer_defaults.py +++ b/src/splunk_ao/resources/models/scorer_defaults.py @@ -31,9 +31,9 @@ class ScorerDefaults: to llm/chat. cot_enabled (bool | None | Unset): Whether to enable chain of thought for this scorer. Defaults to False for llm scorers. - output_type (None | OutputTypeEnum | Unset): What type of output to use for model-based scorers (boolean, + output_type (None | OutputTypeEnum | str | Unset): What type of output to use for model-based scorers (boolean, categorical, etc.). - input_type (InputTypeEnum | None | Unset): What type of input to use for model-based scorers + input_type (InputTypeEnum | None | str | Unset): What type of input to use for model-based scorers (sessions_normalized, trace_io_only, etc..). """ @@ -42,8 +42,8 @@ class ScorerDefaults: filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET scoreable_node_types: list[str] | None | Unset = UNSET cot_enabled: bool | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -230,7 +230,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -243,11 +243,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -260,7 +262,9 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) diff --git a/src/splunk_ao/resources/models/scorer_id_filter.py b/src/splunk_ao/resources/models/scorer_id_filter.py index 8d7e54c2..85d98715 100644 --- a/src/splunk_ao/resources/models/scorer_id_filter.py +++ b/src/splunk_ao/resources/models/scorer_id_filter.py @@ -18,12 +18,12 @@ class ScorerIDFilter: Attributes: value (list[str] | str): name (Literal['id'] | Unset): Default: 'id'. - operator (ScorerIDFilterOperator | Unset): Default: ScorerIDFilterOperator.EQ. + operator (ScorerIDFilterOperator | str | Unset): Default: ScorerIDFilterOperator.EQ. """ value: list[str] | str name: Literal["id"] | Unset = "id" - operator: ScorerIDFilterOperator | Unset = ScorerIDFilterOperator.EQ + operator: ScorerIDFilterOperator | str | Unset = ScorerIDFilterOperator.EQ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -40,9 +40,13 @@ def to_dict(self) -> dict[str, Any]: name = self.name - operator: str | Unset = UNSET - if not isinstance(self.operator, Unset): + operator: str | Unset + if isinstance(self.operator, Unset): + operator = UNSET + elif isinstance(self.operator, ScorerIDFilterOperator): operator = self.operator.value + else: + operator = self.operator field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -84,12 +88,22 @@ def _parse_value_type_1_item(data: object) -> str: if name != "id" and not isinstance(name, Unset): raise ValueError(f"name must match const 'id', got '{name}'") - _operator = d.pop("operator", UNSET) - operator: ScorerIDFilterOperator | Unset - if isinstance(_operator, Unset): - operator = UNSET - else: - operator = ScorerIDFilterOperator(_operator) + def _parse_operator(data: object) -> ScorerIDFilterOperator | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ScorerIDFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ScorerIDFilterOperator | str | Unset, data) + + operator = _parse_operator(d.pop("operator", UNSET)) scorer_id_filter = cls(value=value, name=name, operator=operator) diff --git a/src/splunk_ao/resources/models/scorer_is_global_filter.py b/src/splunk_ao/resources/models/scorer_is_global_filter.py index f480eb31..d89ca502 100644 --- a/src/splunk_ao/resources/models/scorer_is_global_filter.py +++ b/src/splunk_ao/resources/models/scorer_is_global_filter.py @@ -20,12 +20,12 @@ class ScorerIsGlobalFilter: Attributes: value (bool): name (Literal['is_global'] | Unset): Default: 'is_global'. - operator (ScorerIsGlobalFilterOperator | Unset): Default: ScorerIsGlobalFilterOperator.EQ. + operator (ScorerIsGlobalFilterOperator | str | Unset): Default: ScorerIsGlobalFilterOperator.EQ. """ value: bool name: Literal["is_global"] | Unset = "is_global" - operator: ScorerIsGlobalFilterOperator | Unset = ScorerIsGlobalFilterOperator.EQ + operator: ScorerIsGlobalFilterOperator | str | Unset = ScorerIsGlobalFilterOperator.EQ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -33,9 +33,13 @@ def to_dict(self) -> dict[str, Any]: name = self.name - operator: str | Unset = UNSET - if not isinstance(self.operator, Unset): + operator: str | Unset + if isinstance(self.operator, Unset): + operator = UNSET + elif isinstance(self.operator, ScorerIsGlobalFilterOperator): operator = self.operator.value + else: + operator = self.operator field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -56,12 +60,22 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: if name != "is_global" and not isinstance(name, Unset): raise ValueError(f"name must match const 'is_global', got '{name}'") - _operator = d.pop("operator", UNSET) - operator: ScorerIsGlobalFilterOperator | Unset - if isinstance(_operator, Unset): - operator = UNSET - else: - operator = ScorerIsGlobalFilterOperator(_operator) + def _parse_operator(data: object) -> ScorerIsGlobalFilterOperator | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ScorerIsGlobalFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ScorerIsGlobalFilterOperator | str | Unset, data) + + operator = _parse_operator(d.pop("operator", UNSET)) scorer_is_global_filter = cls(value=value, name=name, operator=operator) diff --git a/src/splunk_ao/resources/models/scorer_label_filter.py b/src/splunk_ao/resources/models/scorer_label_filter.py index 33410c30..bc97d808 100644 --- a/src/splunk_ao/resources/models/scorer_label_filter.py +++ b/src/splunk_ao/resources/models/scorer_label_filter.py @@ -16,14 +16,14 @@ class ScorerLabelFilter: """ Attributes: - operator (ScorerLabelFilterOperator): + operator (ScorerLabelFilterOperator | str): value (list[str] | str): name (Literal['label'] | Unset): Default: 'label'. case_sensitive (bool | Unset): Default: True. strict (bool | Unset): Default: True. """ - operator: ScorerLabelFilterOperator + operator: ScorerLabelFilterOperator | str value: list[str] | str name: Literal["label"] | Unset = "label" case_sensitive: bool | Unset = True @@ -31,7 +31,11 @@ class ScorerLabelFilter: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, ScorerLabelFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: list[str] | str if isinstance(self.value, list): @@ -61,7 +65,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = ScorerLabelFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> ScorerLabelFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ScorerLabelFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ScorerLabelFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> list[str] | str: try: diff --git a/src/splunk_ao/resources/models/scorer_model_type_filter.py b/src/splunk_ao/resources/models/scorer_model_type_filter.py index e600475f..d945140b 100644 --- a/src/splunk_ao/resources/models/scorer_model_type_filter.py +++ b/src/splunk_ao/resources/models/scorer_model_type_filter.py @@ -16,18 +16,22 @@ class ScorerModelTypeFilter: """ Attributes: - operator (ScorerModelTypeFilterOperator): + operator (ScorerModelTypeFilterOperator | str): value (list[str] | str): name (Literal['model_type'] | Unset): Default: 'model_type'. """ - operator: ScorerModelTypeFilterOperator + operator: ScorerModelTypeFilterOperator | str value: list[str] | str name: Literal["model_type"] | Unset = "model_type" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, ScorerModelTypeFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: list[str] | str if isinstance(self.value, list): @@ -49,7 +53,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = ScorerModelTypeFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> ScorerModelTypeFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ScorerModelTypeFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ScorerModelTypeFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> list[str] | str: try: diff --git a/src/splunk_ao/resources/models/scorer_multimodal_capabilities_filter.py b/src/splunk_ao/resources/models/scorer_multimodal_capabilities_filter.py index 54e8a9b2..1211f2d2 100644 --- a/src/splunk_ao/resources/models/scorer_multimodal_capabilities_filter.py +++ b/src/splunk_ao/resources/models/scorer_multimodal_capabilities_filter.py @@ -22,20 +22,24 @@ class ScorerMultimodalCapabilitiesFilter: values (e.g. ``{"name": "multimodal_capabilities", "operator": "one_of", "value": ["vision", "audio"]}``). Attributes: - operator (ScorerMultimodalCapabilitiesFilterOperator): + operator (ScorerMultimodalCapabilitiesFilterOperator | str): value (list[str] | str): name (Literal['multimodal_capabilities'] | Unset): Default: 'multimodal_capabilities'. case_sensitive (bool | Unset): Default: True. """ - operator: ScorerMultimodalCapabilitiesFilterOperator + operator: ScorerMultimodalCapabilitiesFilterOperator | str value: list[str] | str name: Literal["multimodal_capabilities"] | Unset = "multimodal_capabilities" case_sensitive: bool | Unset = True additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, ScorerMultimodalCapabilitiesFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: list[str] | str if isinstance(self.value, list): @@ -61,7 +65,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = ScorerMultimodalCapabilitiesFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> ScorerMultimodalCapabilitiesFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ScorerMultimodalCapabilitiesFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ScorerMultimodalCapabilitiesFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> list[str] | str: try: diff --git a/src/splunk_ao/resources/models/scorer_name_filter.py b/src/splunk_ao/resources/models/scorer_name_filter.py index 856b98de..bd8876d4 100644 --- a/src/splunk_ao/resources/models/scorer_name_filter.py +++ b/src/splunk_ao/resources/models/scorer_name_filter.py @@ -16,20 +16,24 @@ class ScorerNameFilter: """ Attributes: - operator (ScorerNameFilterOperator): + operator (ScorerNameFilterOperator | str): value (list[str] | str): name (Literal['name'] | Unset): Default: 'name'. case_sensitive (bool | Unset): Default: False. """ - operator: ScorerNameFilterOperator + operator: ScorerNameFilterOperator | str value: list[str] | str name: Literal["name"] | Unset = "name" case_sensitive: bool | Unset = False additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, ScorerNameFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: list[str] | str if isinstance(self.value, list): @@ -55,7 +59,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = ScorerNameFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> ScorerNameFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ScorerNameFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ScorerNameFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> list[str] | str: try: diff --git a/src/splunk_ao/resources/models/scorer_response.py b/src/splunk_ao/resources/models/scorer_response.py index df41f09b..55f6222e 100644 --- a/src/splunk_ao/resources/models/scorer_response.py +++ b/src/splunk_ao/resources/models/scorer_response.py @@ -36,24 +36,24 @@ class ScorerResponse: Attributes: id (str): name (str): - scorer_type (ScorerTypes): + scorer_type (ScorerTypes | str): tags (list[str]): permissions (list[Permission] | Unset): defaults (None | ScorerDefaults | Unset): latest_version (BaseScorerVersionDB | None | Unset): - model_type (ModelType | None | Unset): + model_type (ModelType | None | str | Unset): ground_truth (bool | None | Unset): default_version_id (None | str | Unset): default_version (BaseScorerVersionDB | None | Unset): user_prompt (None | str | Unset): scoreable_node_types (list[str] | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): required_scorers (list[str] | None | Unset): required_metric_ids (list[str] | None | Unset): deprecated (bool | None | Unset): - roll_up_method (None | RollUpMethodDisplayOptions | Unset): + roll_up_method (None | RollUpMethodDisplayOptions | str | Unset): roll_up_config (BaseMetricRollUpConfigDB | None | Unset): label (None | str | Unset): Default: ''. included_fields (list[str] | Unset): Fields that can be used in the scorer to configure it. i.e. model, @@ -72,24 +72,24 @@ class ScorerResponse: id: str name: str - scorer_type: ScorerTypes + scorer_type: ScorerTypes | str tags: list[str] permissions: list[Permission] | Unset = UNSET defaults: None | ScorerDefaults | Unset = UNSET latest_version: BaseScorerVersionDB | None | Unset = UNSET - model_type: ModelType | None | Unset = UNSET + model_type: ModelType | None | str | Unset = UNSET ground_truth: bool | None | Unset = UNSET default_version_id: None | str | Unset = UNSET default_version: BaseScorerVersionDB | None | Unset = UNSET user_prompt: None | str | Unset = UNSET scoreable_node_types: list[str] | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET required_scorers: list[str] | None | Unset = UNSET required_metric_ids: list[str] | None | Unset = UNSET deprecated: bool | None | Unset = UNSET - roll_up_method: None | RollUpMethodDisplayOptions | Unset = UNSET + roll_up_method: None | RollUpMethodDisplayOptions | str | Unset = UNSET roll_up_config: BaseMetricRollUpConfigDB | None | Unset = UNSET label: None | str | Unset = "" included_fields: list[str] | Unset = UNSET @@ -124,7 +124,11 @@ def to_dict(self) -> dict[str, Any]: name = self.name - scorer_type = self.scorer_type.value + scorer_type: str + if isinstance(self.scorer_type, ScorerTypes): + scorer_type = self.scorer_type.value + else: + scorer_type = self.scorer_type tags = self.tags @@ -216,7 +220,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -416,7 +424,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: name = d.pop("name") - scorer_type = ScorerTypes(d.pop("scorer_type")) + def _parse_scorer_type(data: object) -> ScorerTypes | str: + try: + if not isinstance(data, str): + raise TypeError() + scorer_type_type_0 = ScorerTypes(data) + + return scorer_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scorer_type") + return cast(ScorerTypes | str, data) + + scorer_type = _parse_scorer_type(d.pop("scorer_type")) tags = cast(list[str], d.pop("tags")) @@ -463,7 +484,7 @@ def _parse_latest_version(data: object) -> BaseScorerVersionDB | None | Unset: latest_version = _parse_latest_version(d.pop("latest_version", UNSET)) - def _parse_model_type(data: object) -> ModelType | None | Unset: + def _parse_model_type(data: object) -> ModelType | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -476,7 +497,9 @@ def _parse_model_type(data: object) -> ModelType | None | Unset: return model_type_type_0 except: # noqa: E722 pass - return cast(ModelType | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for model_type") + return cast(ModelType | None | str | Unset, data) model_type = _parse_model_type(d.pop("model_type", UNSET)) @@ -541,7 +564,7 @@ def _parse_scoreable_node_types(data: object) -> list[str] | None | Unset: scoreable_node_types = _parse_scoreable_node_types(d.pop("scoreable_node_types", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -554,11 +577,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -571,11 +596,13 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -586,14 +613,30 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) @@ -640,7 +683,7 @@ def _parse_deprecated(data: object) -> bool | None | Unset: deprecated = _parse_deprecated(d.pop("deprecated", UNSET)) - def _parse_roll_up_method(data: object) -> None | RollUpMethodDisplayOptions | Unset: + def _parse_roll_up_method(data: object) -> None | RollUpMethodDisplayOptions | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -653,7 +696,9 @@ def _parse_roll_up_method(data: object) -> None | RollUpMethodDisplayOptions | U return roll_up_method_type_0 except: # noqa: E722 pass - return cast(None | RollUpMethodDisplayOptions | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_method") + return cast(None | RollUpMethodDisplayOptions | str | Unset, data) roll_up_method = _parse_roll_up_method(d.pop("roll_up_method", UNSET)) diff --git a/src/splunk_ao/resources/models/scorer_scoreable_node_types_filter.py b/src/splunk_ao/resources/models/scorer_scoreable_node_types_filter.py index 4f092b4b..133b27d9 100644 --- a/src/splunk_ao/resources/models/scorer_scoreable_node_types_filter.py +++ b/src/splunk_ao/resources/models/scorer_scoreable_node_types_filter.py @@ -16,20 +16,24 @@ class ScorerScoreableNodeTypesFilter: """ Attributes: - operator (ScorerScoreableNodeTypesFilterOperator): + operator (ScorerScoreableNodeTypesFilterOperator | str): value (list[str] | str): name (Literal['scoreable_node_types'] | Unset): Default: 'scoreable_node_types'. case_sensitive (bool | Unset): Default: True. """ - operator: ScorerScoreableNodeTypesFilterOperator + operator: ScorerScoreableNodeTypesFilterOperator | str value: list[str] | str name: Literal["scoreable_node_types"] | Unset = "scoreable_node_types" case_sensitive: bool | Unset = True additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, ScorerScoreableNodeTypesFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: list[str] | str if isinstance(self.value, list): @@ -55,7 +59,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = ScorerScoreableNodeTypesFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> ScorerScoreableNodeTypesFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ScorerScoreableNodeTypesFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ScorerScoreableNodeTypesFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> list[str] | str: try: diff --git a/src/splunk_ao/resources/models/scorer_tags_filter.py b/src/splunk_ao/resources/models/scorer_tags_filter.py index 654bf81e..762a29cc 100644 --- a/src/splunk_ao/resources/models/scorer_tags_filter.py +++ b/src/splunk_ao/resources/models/scorer_tags_filter.py @@ -16,20 +16,24 @@ class ScorerTagsFilter: """ Attributes: - operator (ScorerTagsFilterOperator): + operator (ScorerTagsFilterOperator | str): value (list[str] | str): name (Literal['tags'] | Unset): Default: 'tags'. case_sensitive (bool | Unset): Default: True. """ - operator: ScorerTagsFilterOperator + operator: ScorerTagsFilterOperator | str value: list[str] | str name: Literal["tags"] | Unset = "tags" case_sensitive: bool | Unset = True additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, ScorerTagsFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: list[str] | str if isinstance(self.value, list): @@ -55,7 +59,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = ScorerTagsFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> ScorerTagsFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ScorerTagsFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ScorerTagsFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> list[str] | str: try: diff --git a/src/splunk_ao/resources/models/scorer_type_filter.py b/src/splunk_ao/resources/models/scorer_type_filter.py index b4b0364a..bb89bcfb 100644 --- a/src/splunk_ao/resources/models/scorer_type_filter.py +++ b/src/splunk_ao/resources/models/scorer_type_filter.py @@ -16,18 +16,22 @@ class ScorerTypeFilter: """ Attributes: - operator (ScorerTypeFilterOperator): + operator (ScorerTypeFilterOperator | str): value (list[str] | str): name (Literal['scorer_type'] | Unset): Default: 'scorer_type'. """ - operator: ScorerTypeFilterOperator + operator: ScorerTypeFilterOperator | str value: list[str] | str name: Literal["scorer_type"] | Unset = "scorer_type" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, ScorerTypeFilterOperator): + operator = self.operator.value + else: + operator = self.operator value: list[str] | str if isinstance(self.value, list): @@ -49,7 +53,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = ScorerTypeFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> ScorerTypeFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ScorerTypeFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ScorerTypeFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) def _parse_value(data: object) -> list[str] | str: try: diff --git a/src/splunk_ao/resources/models/scorer_updated_at_filter.py b/src/splunk_ao/resources/models/scorer_updated_at_filter.py index 6219e5b2..984816e2 100644 --- a/src/splunk_ao/resources/models/scorer_updated_at_filter.py +++ b/src/splunk_ao/resources/models/scorer_updated_at_filter.py @@ -17,18 +17,22 @@ class ScorerUpdatedAtFilter: """ Attributes: - operator (ScorerUpdatedAtFilterOperator): + operator (ScorerUpdatedAtFilterOperator | str): value (datetime.datetime): name (Literal['updated_at'] | Unset): Default: 'updated_at'. """ - operator: ScorerUpdatedAtFilterOperator + operator: ScorerUpdatedAtFilterOperator | str value: datetime.datetime name: Literal["updated_at"] | Unset = "updated_at" additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - operator = self.operator.value + operator: str + if isinstance(self.operator, ScorerUpdatedAtFilterOperator): + operator = self.operator.value + else: + operator = self.operator value = self.value.isoformat() @@ -45,7 +49,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - operator = ScorerUpdatedAtFilterOperator(d.pop("operator")) + + def _parse_operator(data: object) -> ScorerUpdatedAtFilterOperator | str: + try: + if not isinstance(data, str): + raise TypeError() + operator_type_0 = ScorerUpdatedAtFilterOperator(data) + + return operator_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for operator") + return cast(ScorerUpdatedAtFilterOperator | str, data) + + operator = _parse_operator(d.pop("operator")) value = datetime.datetime.fromisoformat(d.pop("value")) diff --git a/src/splunk_ao/resources/models/session_create_request.py b/src/splunk_ao/resources/models/session_create_request.py index 245b7938..51b58299 100644 --- a/src/splunk_ao/resources/models/session_create_request.py +++ b/src/splunk_ao/resources/models/session_create_request.py @@ -23,7 +23,7 @@ class SessionCreateRequest: log_stream_id (None | str | Unset): Log stream id associated with the traces. experiment_id (None | str | Unset): Experiment id associated with the traces. metrics_testing_id (None | str | Unset): Metrics testing id associated with the traces. - logging_method (LoggingMethod | Unset): + logging_method (LoggingMethod | str | Unset): client_version (None | str | Unset): reliable (bool | Unset): Whether or not to use reliable logging. If set to False, the method will respond immediately before verifying that the traces have been successfully ingested, and no error message will be @@ -38,7 +38,7 @@ class SessionCreateRequest: log_stream_id: None | str | Unset = UNSET experiment_id: None | str | Unset = UNSET metrics_testing_id: None | str | Unset = UNSET - logging_method: LoggingMethod | Unset = UNSET + logging_method: LoggingMethod | str | Unset = UNSET client_version: None | str | Unset = UNSET reliable: bool | Unset = True name: None | str | Unset = UNSET @@ -68,9 +68,13 @@ def to_dict(self) -> dict[str, Any]: else: metrics_testing_id = self.metrics_testing_id - logging_method: str | Unset = UNSET - if not isinstance(self.logging_method, Unset): + logging_method: str | Unset + if isinstance(self.logging_method, Unset): + logging_method = UNSET + elif isinstance(self.logging_method, LoggingMethod): logging_method = self.logging_method.value + else: + logging_method = self.logging_method client_version: None | str | Unset if isinstance(self.client_version, Unset): @@ -165,12 +169,22 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) - _logging_method = d.pop("logging_method", UNSET) - logging_method: LoggingMethod | Unset - if isinstance(_logging_method, Unset): - logging_method = UNSET - else: - logging_method = LoggingMethod(_logging_method) + def _parse_logging_method(data: object) -> LoggingMethod | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + logging_method_type_0 = LoggingMethod(data) + + return logging_method_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for logging_method") + return cast(LoggingMethod | str | Unset, data) + + logging_method = _parse_logging_method(d.pop("logging_method", UNSET)) def _parse_client_version(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/stage_db.py b/src/splunk_ao/resources/models/stage_db.py index 51aecac7..f948a8ae 100644 --- a/src/splunk_ao/resources/models/stage_db.py +++ b/src/splunk_ao/resources/models/stage_db.py @@ -21,7 +21,7 @@ class StageDB: created_by (str): id (str): description (None | str | Unset): Optional human-readable description of the goals of this guardrail. - type_ (StageType | Unset): + type_ (StageType | str | Unset): Type of the stage. paused (bool | Unset): Whether the action is enabled. If False, the action will not be applied. Default: False. version (int | None | Unset): """ @@ -31,7 +31,7 @@ class StageDB: created_by: str id: str description: None | str | Unset = UNSET - type_: StageType | Unset = UNSET + type_: StageType | str | Unset = UNSET paused: bool | Unset = False version: int | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -51,9 +51,13 @@ def to_dict(self) -> dict[str, Any]: else: description = self.description - type_: str | Unset = UNSET - if not isinstance(self.type_, Unset): + type_: str | Unset + if isinstance(self.type_, Unset): + type_ = UNSET + elif isinstance(self.type_, StageType): type_ = self.type_.value + else: + type_ = self.type_ paused = self.paused @@ -97,12 +101,22 @@ def _parse_description(data: object) -> None | str | Unset: description = _parse_description(d.pop("description", UNSET)) - _type_ = d.pop("type", UNSET) - type_: StageType | Unset - if isinstance(_type_, Unset): - type_ = UNSET - else: - type_ = StageType(_type_) + def _parse_type_(data: object) -> StageType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + type_type_0 = StageType(data) + + return type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(StageType | str | Unset, data) + + type_ = _parse_type_(d.pop("type", UNSET)) paused = d.pop("paused", UNSET) diff --git a/src/splunk_ao/resources/models/stage_metadata.py b/src/splunk_ao/resources/models/stage_metadata.py index 625587b5..18600e3a 100644 --- a/src/splunk_ao/resources/models/stage_metadata.py +++ b/src/splunk_ao/resources/models/stage_metadata.py @@ -1,7 +1,7 @@ from __future__ import annotations from collections.abc import Mapping -from typing import Any, TypeVar +from typing import Any, TypeVar, cast from attrs import define as _attrs_define from attrs import field as _attrs_field @@ -19,14 +19,14 @@ class StageMetadata: stage_id (str): stage_name (str): stage_version (int): - stage_type (StageType): + stage_type (StageType | str): """ project_id: str stage_id: str stage_name: str stage_version: int - stage_type: StageType + stage_type: StageType | str additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -38,7 +38,11 @@ def to_dict(self) -> dict[str, Any]: stage_version = self.stage_version - stage_type = self.stage_type.value + stage_type: str + if isinstance(self.stage_type, StageType): + stage_type = self.stage_type.value + else: + stage_type = self.stage_type field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -65,7 +69,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: stage_version = d.pop("stage_version") - stage_type = StageType(d.pop("stage_type")) + def _parse_stage_type(data: object) -> StageType | str: + try: + if not isinstance(data, str): + raise TypeError() + stage_type_type_0 = StageType(data) + + return stage_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for stage_type") + return cast(StageType | str, data) + + stage_type = _parse_stage_type(d.pop("stage_type")) stage_metadata = cls( project_id=project_id, diff --git a/src/splunk_ao/resources/models/stage_with_rulesets.py b/src/splunk_ao/resources/models/stage_with_rulesets.py index eed9ea87..9ae3abfb 100644 --- a/src/splunk_ao/resources/models/stage_with_rulesets.py +++ b/src/splunk_ao/resources/models/stage_with_rulesets.py @@ -24,7 +24,7 @@ class StageWithRulesets: project_id (str): ID of the project to which this stage belongs. prioritized_rulesets (list[Ruleset] | Unset): Rulesets to be applied to the payload. description (None | str | Unset): Optional human-readable description of the goals of this guardrail. - type_ (StageType | Unset): + type_ (StageType | str | Unset): Type of the stage. paused (bool | Unset): Whether the action is enabled. If False, the action will not be applied. Default: False. """ @@ -32,7 +32,7 @@ class StageWithRulesets: project_id: str prioritized_rulesets: list[Ruleset] | Unset = UNSET description: None | str | Unset = UNSET - type_: StageType | Unset = UNSET + type_: StageType | str | Unset = UNSET paused: bool | Unset = False additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -54,9 +54,13 @@ def to_dict(self) -> dict[str, Any]: else: description = self.description - type_: str | Unset = UNSET - if not isinstance(self.type_, Unset): + type_: str | Unset + if isinstance(self.type_, Unset): + type_ = UNSET + elif isinstance(self.type_, StageType): type_ = self.type_.value + else: + type_ = self.type_ paused = self.paused @@ -101,12 +105,22 @@ def _parse_description(data: object) -> None | str | Unset: description = _parse_description(d.pop("description", UNSET)) - _type_ = d.pop("type", UNSET) - type_: StageType | Unset - if isinstance(_type_, Unset): - type_ = UNSET - else: - type_ = StageType(_type_) + def _parse_type_(data: object) -> StageType | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + type_type_0 = StageType(data) + + return type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(StageType | str | Unset, data) + + type_ = _parse_type_(d.pop("type", UNSET)) paused = d.pop("paused", UNSET) diff --git a/src/splunk_ao/resources/models/standard_error.py b/src/splunk_ao/resources/models/standard_error.py index 3e39a1ec..4cac9502 100644 --- a/src/splunk_ao/resources/models/standard_error.py +++ b/src/splunk_ao/resources/models/standard_error.py @@ -22,9 +22,9 @@ class StandardError: """ Attributes: error_code (int): - error_type (ErrorType): + error_type (ErrorType | str): error_group (str): - severity (ErrorSeverity): Error severity levels for catalog entries. + severity (ErrorSeverity | str): message (str): user_action (None | str | Unset): documentation_link (None | str | Unset): @@ -36,9 +36,9 @@ class StandardError: """ error_code: int - error_type: ErrorType + error_type: ErrorType | str error_group: str - severity: ErrorSeverity + severity: ErrorSeverity | str message: str user_action: None | str | Unset = UNSET documentation_link: None | str | Unset = UNSET @@ -52,11 +52,19 @@ class StandardError: def to_dict(self) -> dict[str, Any]: error_code = self.error_code - error_type = self.error_type.value + error_type: str + if isinstance(self.error_type, ErrorType): + error_type = self.error_type.value + else: + error_type = self.error_type error_group = self.error_group - severity = self.severity.value + severity: str + if isinstance(self.severity, ErrorSeverity): + severity = self.severity.value + else: + severity = self.severity message = self.message @@ -127,11 +135,37 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) error_code = d.pop("error_code") - error_type = ErrorType(d.pop("error_type")) + def _parse_error_type(data: object) -> ErrorType | str: + try: + if not isinstance(data, str): + raise TypeError() + error_type_type_0 = ErrorType(data) + + return error_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for error_type") + return cast(ErrorType | str, data) + + error_type = _parse_error_type(d.pop("error_type")) error_group = d.pop("error_group") - severity = ErrorSeverity(d.pop("severity")) + def _parse_severity(data: object) -> ErrorSeverity | str: + try: + if not isinstance(data, str): + raise TypeError() + severity_type_0 = ErrorSeverity(data) + + return severity_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for severity") + return cast(ErrorSeverity | str, data) + + severity = _parse_severity(d.pop("severity")) message = d.pop("message") diff --git a/src/splunk_ao/resources/models/subscription_config.py b/src/splunk_ao/resources/models/subscription_config.py index 9a43ec39..6854eeb2 100644 --- a/src/splunk_ao/resources/models/subscription_config.py +++ b/src/splunk_ao/resources/models/subscription_config.py @@ -1,7 +1,7 @@ from __future__ import annotations from collections.abc import Mapping -from typing import Any, TypeVar +from typing import Any, TypeVar, cast from attrs import define as _attrs_define from attrs import field as _attrs_field @@ -18,12 +18,12 @@ class SubscriptionConfig: Attributes: url (str): URL to send the event to. This can be a webhook URL, a message queue URL, an event bus or a custom endpoint that can receive an HTTP POST request. - statuses (list[ExecutionStatus] | Unset): List of statuses that will cause a notification to be sent to the - configured URL. + statuses (list[ExecutionStatus | str] | Unset): List of statuses that will cause a notification to be sent to + the configured URL. """ url: str - statuses: list[ExecutionStatus] | Unset = UNSET + statuses: list[ExecutionStatus | str] | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -33,7 +33,11 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.statuses, Unset): statuses = [] for statuses_item_data in self.statuses: - statuses_item = statuses_item_data.value + statuses_item: str + if isinstance(statuses_item_data, ExecutionStatus): + statuses_item = statuses_item_data.value + else: + statuses_item = statuses_item_data statuses.append(statuses_item) field_dict: dict[str, Any] = {} @@ -50,11 +54,25 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: url = d.pop("url") _statuses = d.pop("statuses", UNSET) - statuses: list[ExecutionStatus] | Unset = UNSET + statuses: list[ExecutionStatus | str] | Unset = UNSET if _statuses is not UNSET: statuses = [] for statuses_item_data in _statuses: - statuses_item = ExecutionStatus(statuses_item_data) + + def _parse_statuses_item(data: object) -> ExecutionStatus | str: + try: + if not isinstance(data, str): + raise TypeError() + statuses_item_type_0 = ExecutionStatus(data) + + return statuses_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for statuses_item") + return cast(ExecutionStatus | str, data) + + statuses_item = _parse_statuses_item(statuses_item_data) statuses.append(statuses_item) diff --git a/src/splunk_ao/resources/models/synthetic_dataset_extension_request.py b/src/splunk_ao/resources/models/synthetic_dataset_extension_request.py index 87b75549..e34e29e6 100644 --- a/src/splunk_ao/resources/models/synthetic_dataset_extension_request.py +++ b/src/splunk_ao/resources/models/synthetic_dataset_extension_request.py @@ -27,7 +27,7 @@ class SyntheticDatasetExtensionRequest: instructions (None | str | Unset): examples (list[str] | Unset): source_dataset (None | SyntheticDataSourceDataset | Unset): - data_types (list[SyntheticDataTypes] | None | Unset): + data_types (list[str | SyntheticDataTypes] | None | Unset): count (int | Unset): Default: 10. project_id (None | str | Unset): """ @@ -37,7 +37,7 @@ class SyntheticDatasetExtensionRequest: instructions: None | str | Unset = UNSET examples: list[str] | Unset = UNSET source_dataset: None | SyntheticDataSourceDataset | Unset = UNSET - data_types: list[SyntheticDataTypes] | None | Unset = UNSET + data_types: list[str | SyntheticDataTypes] | None | Unset = UNSET count: int | Unset = 10 project_id: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -79,7 +79,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.data_types, list): data_types = [] for data_types_type_0_item_data in self.data_types: - data_types_type_0_item = data_types_type_0_item_data.value + data_types_type_0_item: str + if isinstance(data_types_type_0_item_data, SyntheticDataTypes): + data_types_type_0_item = data_types_type_0_item_data.value + else: + data_types_type_0_item = data_types_type_0_item_data data_types.append(data_types_type_0_item) else: @@ -165,7 +169,7 @@ def _parse_source_dataset(data: object) -> None | SyntheticDataSourceDataset | U source_dataset = _parse_source_dataset(d.pop("source_dataset", UNSET)) - def _parse_data_types(data: object) -> list[SyntheticDataTypes] | None | Unset: + def _parse_data_types(data: object) -> list[str | SyntheticDataTypes] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -176,14 +180,28 @@ def _parse_data_types(data: object) -> list[SyntheticDataTypes] | None | Unset: data_types_type_0 = [] _data_types_type_0 = data for data_types_type_0_item_data in _data_types_type_0: - data_types_type_0_item = SyntheticDataTypes(data_types_type_0_item_data) + + def _parse_data_types_type_0_item(data: object) -> str | SyntheticDataTypes: + try: + if not isinstance(data, str): + raise TypeError() + data_types_type_0_item_type_0 = SyntheticDataTypes(data) + + return data_types_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for data_types_type_0_item") + return cast(str | SyntheticDataTypes, data) + + data_types_type_0_item = _parse_data_types_type_0_item(data_types_type_0_item_data) data_types_type_0.append(data_types_type_0_item) return data_types_type_0 except: # noqa: E722 pass - return cast(list[SyntheticDataTypes] | None | Unset, data) + return cast(list[str | SyntheticDataTypes] | None | Unset, data) data_types = _parse_data_types(d.pop("data_types", UNSET)) diff --git a/src/splunk_ao/resources/models/system_metric_info.py b/src/splunk_ao/resources/models/system_metric_info.py index 2121c52b..ccab95d3 100644 --- a/src/splunk_ao/resources/models/system_metric_info.py +++ b/src/splunk_ao/resources/models/system_metric_info.py @@ -24,7 +24,7 @@ class SystemMetricInfo: label (str): Human-readable display name for the metric aggregation_type (Literal['numeric'] | Unset): Discriminator: numeric metrics aggregated via stats/histogram Default: 'numeric'. - unit (DataUnit | None | Unset): Unit of measurement, if any + unit (DataUnit | None | str | Unset): Unit of measurement, if any values (list[float] | Unset): Raw metric values used to compute statistics and histograms mean (float | None | Unset): Arithmetic mean of the metric values median (float | None | Unset): Median (50th percentile) of the metric values @@ -40,7 +40,7 @@ class SystemMetricInfo: name: str label: str aggregation_type: Literal["numeric"] | Unset = "numeric" - unit: DataUnit | None | Unset = UNSET + unit: DataUnit | None | str | Unset = UNSET values: list[float] | Unset = UNSET mean: float | None | Unset = UNSET median: float | None | Unset = UNSET @@ -173,7 +173,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: if aggregation_type != "numeric" and not isinstance(aggregation_type, Unset): raise ValueError(f"aggregation_type must match const 'numeric', got '{aggregation_type}'") - def _parse_unit(data: object) -> DataUnit | None | Unset: + def _parse_unit(data: object) -> DataUnit | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -186,7 +186,9 @@ def _parse_unit(data: object) -> DataUnit | None | Unset: return unit_type_0 except: # noqa: E722 pass - return cast(DataUnit | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for unit") + return cast(DataUnit | None | str | Unset, data) unit = _parse_unit(d.pop("unit", UNSET)) diff --git a/src/splunk_ao/resources/models/test_score.py b/src/splunk_ao/resources/models/test_score.py index 65d58211..7d3c1c32 100644 --- a/src/splunk_ao/resources/models/test_score.py +++ b/src/splunk_ao/resources/models/test_score.py @@ -16,16 +16,20 @@ class TestScore: """ Attributes: - node_type (NodeType): + node_type (NodeType | str): score (bool | float | int | None | str | Unset): """ - node_type: NodeType + node_type: NodeType | str score: bool | float | int | None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - node_type = self.node_type.value + node_type: str + if isinstance(self.node_type, NodeType): + node_type = self.node_type.value + else: + node_type = self.node_type score: bool | float | int | None | str | Unset if isinstance(self.score, Unset): @@ -44,7 +48,21 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - node_type = NodeType(d.pop("node_type")) + + def _parse_node_type(data: object) -> NodeType | str: + try: + if not isinstance(data, str): + raise TypeError() + node_type_type_0 = NodeType(data) + + return node_type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for node_type") + return cast(NodeType | str, data) + + node_type = _parse_node_type(d.pop("node_type")) def _parse_score(data: object) -> bool | float | int | None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/tool_error_rate_scorer.py b/src/splunk_ao/resources/models/tool_error_rate_scorer.py index 467d2dd6..24511a8f 100644 --- a/src/splunk_ao/resources/models/tool_error_rate_scorer.py +++ b/src/splunk_ao/resources/models/tool_error_rate_scorer.py @@ -25,13 +25,13 @@ class ToolErrorRateScorer: name (Literal['tool_error_rate'] | Unset): Default: 'tool_error_rate'. filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): List of filters to apply to the scorer. - type_ (ToolErrorRateScorerType | Unset): Default: ToolErrorRateScorerType.PLUS. + type_ (str | ToolErrorRateScorerType | Unset): Default: ToolErrorRateScorerType.PLUS. model_name (None | str | Unset): Alias of the model to use for the scorer. """ name: Literal["tool_error_rate"] | Unset = "tool_error_rate" filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET - type_: ToolErrorRateScorerType | Unset = ToolErrorRateScorerType.PLUS + type_: str | ToolErrorRateScorerType | Unset = ToolErrorRateScorerType.PLUS model_name: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -60,9 +60,13 @@ def to_dict(self) -> dict[str, Any]: else: filters = self.filters - type_: str | Unset = UNSET - if not isinstance(self.type_, Unset): + type_: str | Unset + if isinstance(self.type_, Unset): + type_ = UNSET + elif isinstance(self.type_, ToolErrorRateScorerType): type_ = self.type_.value + else: + type_ = self.type_ model_name: None | str | Unset if isinstance(self.model_name, Unset): @@ -141,12 +145,22 @@ def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter filters = _parse_filters(d.pop("filters", UNSET)) - _type_ = d.pop("type", UNSET) - type_: ToolErrorRateScorerType | Unset - if isinstance(_type_, Unset): - type_ = UNSET - else: - type_ = ToolErrorRateScorerType(_type_) + def _parse_type_(data: object) -> str | ToolErrorRateScorerType | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + type_type_0 = ToolErrorRateScorerType(data) + + return type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(str | ToolErrorRateScorerType | Unset, data) + + type_ = _parse_type_(d.pop("type", UNSET)) def _parse_model_name(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/tool_selection_quality_scorer.py b/src/splunk_ao/resources/models/tool_selection_quality_scorer.py index 33979056..61ddd471 100644 --- a/src/splunk_ao/resources/models/tool_selection_quality_scorer.py +++ b/src/splunk_ao/resources/models/tool_selection_quality_scorer.py @@ -25,14 +25,14 @@ class ToolSelectionQualityScorer: name (Literal['tool_selection_quality'] | Unset): Default: 'tool_selection_quality'. filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): List of filters to apply to the scorer. - type_ (ToolSelectionQualityScorerType | Unset): Default: ToolSelectionQualityScorerType.PLUS. + type_ (str | ToolSelectionQualityScorerType | Unset): Default: ToolSelectionQualityScorerType.PLUS. model_name (None | str | Unset): Alias of the model to use for the scorer. num_judges (int | None | Unset): Number of judges for the scorer. """ name: Literal["tool_selection_quality"] | Unset = "tool_selection_quality" filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET - type_: ToolSelectionQualityScorerType | Unset = ToolSelectionQualityScorerType.PLUS + type_: str | ToolSelectionQualityScorerType | Unset = ToolSelectionQualityScorerType.PLUS model_name: None | str | Unset = UNSET num_judges: int | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -62,9 +62,13 @@ def to_dict(self) -> dict[str, Any]: else: filters = self.filters - type_: str | Unset = UNSET - if not isinstance(self.type_, Unset): + type_: str | Unset + if isinstance(self.type_, Unset): + type_ = UNSET + elif isinstance(self.type_, ToolSelectionQualityScorerType): type_ = self.type_.value + else: + type_ = self.type_ model_name: None | str | Unset if isinstance(self.model_name, Unset): @@ -151,12 +155,22 @@ def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter filters = _parse_filters(d.pop("filters", UNSET)) - _type_ = d.pop("type", UNSET) - type_: ToolSelectionQualityScorerType | Unset - if isinstance(_type_, Unset): - type_ = UNSET - else: - type_ = ToolSelectionQualityScorerType(_type_) + def _parse_type_(data: object) -> str | ToolSelectionQualityScorerType | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + type_type_0 = ToolSelectionQualityScorerType(data) + + return type_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for type_") + return cast(str | ToolSelectionQualityScorerType | Unset, data) + + type_ = _parse_type_(d.pop("type", UNSET)) def _parse_model_name(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/update_scorer_request.py b/src/splunk_ao/resources/models/update_scorer_request.py index b37d3b06..68ef640a 100644 --- a/src/splunk_ao/resources/models/update_scorer_request.py +++ b/src/splunk_ao/resources/models/update_scorer_request.py @@ -32,15 +32,15 @@ class UpdateScorerRequest: description (None | str | Unset): tags (list[str] | None | Unset): defaults (None | ScorerDefaults | Unset): - model_type (ModelType | None | Unset): + model_type (ModelType | None | str | Unset): ground_truth (bool | None | Unset): default_version_id (None | str | Unset): user_prompt (None | str | Unset): scoreable_node_types (list[str] | None | Unset): - output_type (None | OutputTypeEnum | Unset): - input_type (InputTypeEnum | None | Unset): - multimodal_capabilities (list[MultimodalCapability] | None | Unset): - roll_up_method (None | RollUpMethodDisplayOptions | Unset): + output_type (None | OutputTypeEnum | str | Unset): + input_type (InputTypeEnum | None | str | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): + roll_up_method (None | RollUpMethodDisplayOptions | str | Unset): metric_color_picker_config (MetricColorPickerBoolean | MetricColorPickerCategorical | MetricColorPickerMultiLabel | MetricColorPickerNumeric | None | Unset): """ @@ -49,15 +49,15 @@ class UpdateScorerRequest: description: None | str | Unset = UNSET tags: list[str] | None | Unset = UNSET defaults: None | ScorerDefaults | Unset = UNSET - model_type: ModelType | None | Unset = UNSET + model_type: ModelType | None | str | Unset = UNSET ground_truth: bool | None | Unset = UNSET default_version_id: None | str | Unset = UNSET user_prompt: None | str | Unset = UNSET scoreable_node_types: list[str] | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET - input_type: InputTypeEnum | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | None | Unset = UNSET - roll_up_method: None | RollUpMethodDisplayOptions | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET + input_type: InputTypeEnum | None | str | Unset = UNSET + multimodal_capabilities: list[MultimodalCapability | str] | None | Unset = UNSET + roll_up_method: None | RollUpMethodDisplayOptions | str | Unset = UNSET metric_color_picker_config: ( MetricColorPickerBoolean | MetricColorPickerCategorical @@ -161,7 +161,11 @@ def to_dict(self) -> dict[str, Any]: elif isinstance(self.multimodal_capabilities, list): multimodal_capabilities = [] for multimodal_capabilities_type_0_item_data in self.multimodal_capabilities: - multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + multimodal_capabilities_type_0_item: str + if isinstance(multimodal_capabilities_type_0_item_data, MultimodalCapability): + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data.value + else: + multimodal_capabilities_type_0_item = multimodal_capabilities_type_0_item_data multimodal_capabilities.append(multimodal_capabilities_type_0_item) else: @@ -285,7 +289,7 @@ def _parse_defaults(data: object) -> None | ScorerDefaults | Unset: defaults = _parse_defaults(d.pop("defaults", UNSET)) - def _parse_model_type(data: object) -> ModelType | None | Unset: + def _parse_model_type(data: object) -> ModelType | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -298,7 +302,9 @@ def _parse_model_type(data: object) -> ModelType | None | Unset: return model_type_type_0 except: # noqa: E722 pass - return cast(ModelType | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for model_type") + return cast(ModelType | None | str | Unset, data) model_type = _parse_model_type(d.pop("model_type", UNSET)) @@ -346,7 +352,7 @@ def _parse_scoreable_node_types(data: object) -> list[str] | None | Unset: scoreable_node_types = _parse_scoreable_node_types(d.pop("scoreable_node_types", UNSET)) - def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: + def _parse_output_type(data: object) -> None | OutputTypeEnum | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -359,11 +365,13 @@ def _parse_output_type(data: object) -> None | OutputTypeEnum | Unset: return output_type_type_0 except: # noqa: E722 pass - return cast(None | OutputTypeEnum | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for output_type") + return cast(None | OutputTypeEnum | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) - def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: + def _parse_input_type(data: object) -> InputTypeEnum | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -376,11 +384,13 @@ def _parse_input_type(data: object) -> InputTypeEnum | None | Unset: return input_type_type_0 except: # noqa: E722 pass - return cast(InputTypeEnum | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for input_type") + return cast(InputTypeEnum | None | str | Unset, data) input_type = _parse_input_type(d.pop("input_type", UNSET)) - def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | None | Unset: + def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability | str] | None | Unset: if data is None: return data if isinstance(data, Unset): @@ -391,18 +401,34 @@ def _parse_multimodal_capabilities(data: object) -> list[MultimodalCapability] | multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data for multimodal_capabilities_type_0_item_data in _multimodal_capabilities_type_0: - multimodal_capabilities_type_0_item = MultimodalCapability(multimodal_capabilities_type_0_item_data) + + def _parse_multimodal_capabilities_type_0_item(data: object) -> MultimodalCapability | str: + try: + if not isinstance(data, str): + raise TypeError() + multimodal_capabilities_type_0_item_type_0 = MultimodalCapability(data) + + return multimodal_capabilities_type_0_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0_item") + return cast(MultimodalCapability | str, data) + + multimodal_capabilities_type_0_item = _parse_multimodal_capabilities_type_0_item( + multimodal_capabilities_type_0_item_data + ) multimodal_capabilities_type_0.append(multimodal_capabilities_type_0_item) return multimodal_capabilities_type_0 except: # noqa: E722 pass - return cast(list[MultimodalCapability] | None | Unset, data) + return cast(list[MultimodalCapability | str] | None | Unset, data) multimodal_capabilities = _parse_multimodal_capabilities(d.pop("multimodal_capabilities", UNSET)) - def _parse_roll_up_method(data: object) -> None | RollUpMethodDisplayOptions | Unset: + def _parse_roll_up_method(data: object) -> None | RollUpMethodDisplayOptions | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -415,7 +441,9 @@ def _parse_roll_up_method(data: object) -> None | RollUpMethodDisplayOptions | U return roll_up_method_type_0 except: # noqa: E722 pass - return cast(None | RollUpMethodDisplayOptions | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_method") + return cast(None | RollUpMethodDisplayOptions | str | Unset, data) roll_up_method = _parse_roll_up_method(d.pop("roll_up_method", UNSET)) diff --git a/src/splunk_ao/resources/models/user_annotation_queue_collaborator.py b/src/splunk_ao/resources/models/user_annotation_queue_collaborator.py index 425883de..2eafeed7 100644 --- a/src/splunk_ao/resources/models/user_annotation_queue_collaborator.py +++ b/src/splunk_ao/resources/models/user_annotation_queue_collaborator.py @@ -23,7 +23,7 @@ class UserAnnotationQueueCollaborator: Attributes: id (str): - role (CollaboratorRole): + role (CollaboratorRole | str): created_at (datetime.datetime): user_id (str): first_name (None | str): @@ -36,7 +36,7 @@ class UserAnnotationQueueCollaborator: """ id: str - role: CollaboratorRole + role: CollaboratorRole | str created_at: datetime.datetime user_id: str first_name: None | str @@ -51,7 +51,11 @@ class UserAnnotationQueueCollaborator: def to_dict(self) -> dict[str, Any]: id = self.id - role = self.role.value + role: str + if isinstance(self.role, CollaboratorRole): + role = self.role.value + else: + role = self.role created_at = self.created_at.isoformat() @@ -112,7 +116,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) id = d.pop("id") - role = CollaboratorRole(d.pop("role")) + def _parse_role(data: object) -> CollaboratorRole | str: + try: + if not isinstance(data, str): + raise TypeError() + role_type_0 = CollaboratorRole(data) + + return role_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for role") + return cast(CollaboratorRole | str, data) + + role = _parse_role(d.pop("role")) created_at = datetime.datetime.fromisoformat(d.pop("created_at")) diff --git a/src/splunk_ao/resources/models/user_collaborator.py b/src/splunk_ao/resources/models/user_collaborator.py index 770961ea..1704d0c9 100644 --- a/src/splunk_ao/resources/models/user_collaborator.py +++ b/src/splunk_ao/resources/models/user_collaborator.py @@ -22,7 +22,7 @@ class UserCollaborator: """ Attributes: id (str): - role (CollaboratorRole): + role (CollaboratorRole | str): created_at (datetime.datetime): user_id (str): first_name (None | str): @@ -32,7 +32,7 @@ class UserCollaborator: """ id: str - role: CollaboratorRole + role: CollaboratorRole | str created_at: datetime.datetime user_id: str first_name: None | str @@ -44,7 +44,11 @@ class UserCollaborator: def to_dict(self) -> dict[str, Any]: id = self.id - role = self.role.value + role: str + if isinstance(self.role, CollaboratorRole): + role = self.role.value + else: + role = self.role created_at = self.created_at.isoformat() @@ -90,7 +94,20 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) id = d.pop("id") - role = CollaboratorRole(d.pop("role")) + def _parse_role(data: object) -> CollaboratorRole | str: + try: + if not isinstance(data, str): + raise TypeError() + role_type_0 = CollaboratorRole(data) + + return role_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for role") + return cast(CollaboratorRole | str, data) + + role = _parse_role(d.pop("role")) created_at = datetime.datetime.fromisoformat(d.pop("created_at")) diff --git a/src/splunk_ao/resources/models/user_collaborator_create.py b/src/splunk_ao/resources/models/user_collaborator_create.py index 33c17014..cd2fb88d 100644 --- a/src/splunk_ao/resources/models/user_collaborator_create.py +++ b/src/splunk_ao/resources/models/user_collaborator_create.py @@ -20,20 +20,24 @@ class UserCollaboratorCreate: they will be invited automatically. Attributes: - role (CollaboratorRole | Unset): + role (CollaboratorRole | str | Unset): user_id (None | str | Unset): user_email (None | str | Unset): """ - role: CollaboratorRole | Unset = UNSET + role: CollaboratorRole | str | Unset = UNSET user_id: None | str | Unset = UNSET user_email: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - role: str | Unset = UNSET - if not isinstance(self.role, Unset): + role: str | Unset + if isinstance(self.role, Unset): + role = UNSET + elif isinstance(self.role, CollaboratorRole): role = self.role.value + else: + role = self.role user_id: None | str | Unset if isinstance(self.user_id, Unset): @@ -62,12 +66,23 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - _role = d.pop("role", UNSET) - role: CollaboratorRole | Unset - if isinstance(_role, Unset): - role = UNSET - else: - role = CollaboratorRole(_role) + + def _parse_role(data: object) -> CollaboratorRole | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + role_type_0 = CollaboratorRole(data) + + return role_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for role") + return cast(CollaboratorRole | str | Unset, data) + + role = _parse_role(d.pop("role", UNSET)) def _parse_user_id(data: object) -> None | str | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/user_db.py b/src/splunk_ao/resources/models/user_db.py index 36483896..09fa1bad 100644 --- a/src/splunk_ao/resources/models/user_db.py +++ b/src/splunk_ao/resources/models/user_db.py @@ -31,8 +31,8 @@ class UserDB: permissions (list[Permission] | Unset): first_name (None | str | Unset): Default: ''. last_name (None | str | Unset): Default: ''. - auth_method (AuthMethod | Unset): - role (UserRole | Unset): + auth_method (AuthMethod | str | Unset): + role (str | Unset | UserRole): email_is_verified (bool | None | Unset): """ @@ -45,8 +45,8 @@ class UserDB: permissions: list[Permission] | Unset = UNSET first_name: None | str | Unset = "" last_name: None | str | Unset = "" - auth_method: AuthMethod | Unset = UNSET - role: UserRole | Unset = UNSET + auth_method: AuthMethod | str | Unset = UNSET + role: str | Unset | UserRole = UNSET email_is_verified: bool | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -82,13 +82,21 @@ def to_dict(self) -> dict[str, Any]: else: last_name = self.last_name - auth_method: str | Unset = UNSET - if not isinstance(self.auth_method, Unset): + auth_method: str | Unset + if isinstance(self.auth_method, Unset): + auth_method = UNSET + elif isinstance(self.auth_method, AuthMethod): auth_method = self.auth_method.value + else: + auth_method = self.auth_method - role: str | Unset = UNSET - if not isinstance(self.role, Unset): + role: str | Unset + if isinstance(self.role, Unset): + role = UNSET + elif isinstance(self.role, UserRole): role = self.role.value + else: + role = self.role email_is_verified: bool | None | Unset if isinstance(self.email_is_verified, Unset): @@ -167,19 +175,39 @@ def _parse_last_name(data: object) -> None | str | Unset: last_name = _parse_last_name(d.pop("last_name", UNSET)) - _auth_method = d.pop("auth_method", UNSET) - auth_method: AuthMethod | Unset - if isinstance(_auth_method, Unset): - auth_method = UNSET - else: - auth_method = AuthMethod(_auth_method) + def _parse_auth_method(data: object) -> AuthMethod | str | Unset: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + auth_method_type_0 = AuthMethod(data) - _role = d.pop("role", UNSET) - role: UserRole | Unset - if isinstance(_role, Unset): - role = UNSET - else: - role = UserRole(_role) + return auth_method_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for auth_method") + return cast(AuthMethod | str | Unset, data) + + auth_method = _parse_auth_method(d.pop("auth_method", UNSET)) + + def _parse_role(data: object) -> str | Unset | UserRole: + if isinstance(data, Unset): + return data + try: + if not isinstance(data, str): + raise TypeError() + role_type_0 = UserRole(data) + + return role_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for role") + return cast(str | Unset | UserRole, data) + + role = _parse_role(d.pop("role", UNSET)) def _parse_email_is_verified(data: object) -> bool | None | Unset: if data is None: diff --git a/src/splunk_ao/resources/models/valid_result.py b/src/splunk_ao/resources/models/valid_result.py index a17f7b6c..53a70b26 100644 --- a/src/splunk_ao/resources/models/valid_result.py +++ b/src/splunk_ao/resources/models/valid_result.py @@ -22,19 +22,19 @@ class ValidResult: """ Attributes: score_type (str): - scoreable_node_types (list[NodeType]): + scoreable_node_types (list[NodeType | str]): test_scores (list[TestScore]): result_type (Literal['valid'] | Unset): Default: 'valid'. include_llm_credentials (bool | Unset): Default: False. - chain_aggregation (ChainAggregationStrategy | None | Unset): + chain_aggregation (ChainAggregationStrategy | None | str | Unset): """ score_type: str - scoreable_node_types: list[NodeType] + scoreable_node_types: list[NodeType | str] test_scores: list[TestScore] result_type: Literal["valid"] | Unset = "valid" include_llm_credentials: bool | Unset = False - chain_aggregation: ChainAggregationStrategy | None | Unset = UNSET + chain_aggregation: ChainAggregationStrategy | None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -42,7 +42,11 @@ def to_dict(self) -> dict[str, Any]: scoreable_node_types = [] for scoreable_node_types_item_data in self.scoreable_node_types: - scoreable_node_types_item = scoreable_node_types_item_data.value + scoreable_node_types_item: str + if isinstance(scoreable_node_types_item_data, NodeType): + scoreable_node_types_item = scoreable_node_types_item_data.value + else: + scoreable_node_types_item = scoreable_node_types_item_data scoreable_node_types.append(scoreable_node_types_item) test_scores = [] @@ -86,7 +90,21 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: scoreable_node_types = [] _scoreable_node_types = d.pop("scoreable_node_types") for scoreable_node_types_item_data in _scoreable_node_types: - scoreable_node_types_item = NodeType(scoreable_node_types_item_data) + + def _parse_scoreable_node_types_item(data: object) -> NodeType | str: + try: + if not isinstance(data, str): + raise TypeError() + scoreable_node_types_item_type_0 = NodeType(data) + + return scoreable_node_types_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for scoreable_node_types_item") + return cast(NodeType | str, data) + + scoreable_node_types_item = _parse_scoreable_node_types_item(scoreable_node_types_item_data) scoreable_node_types.append(scoreable_node_types_item) @@ -103,7 +121,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: include_llm_credentials = d.pop("include_llm_credentials", UNSET) - def _parse_chain_aggregation(data: object) -> ChainAggregationStrategy | None | Unset: + def _parse_chain_aggregation(data: object) -> ChainAggregationStrategy | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -116,7 +134,9 @@ def _parse_chain_aggregation(data: object) -> ChainAggregationStrategy | None | return chain_aggregation_type_0 except: # noqa: E722 pass - return cast(ChainAggregationStrategy | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for chain_aggregation") + return cast(ChainAggregationStrategy | None | str | Unset, data) chain_aggregation = _parse_chain_aggregation(d.pop("chain_aggregation", UNSET)) diff --git a/src/splunk_ao/resources/models/web_search_call_event.py b/src/splunk_ao/resources/models/web_search_call_event.py index 82af3d11..63e113b9 100644 --- a/src/splunk_ao/resources/models/web_search_call_event.py +++ b/src/splunk_ao/resources/models/web_search_call_event.py @@ -25,7 +25,7 @@ class WebSearchCallEvent: action (WebSearchAction): Action payload for a web search call event. type_ (Literal['web_search_call'] | Unset): Default: 'web_search_call'. id (None | str | Unset): Unique identifier for the event - status (EventStatus | None | Unset): Status of the event + status (EventStatus | None | str | Unset): Status of the event metadata (None | Unset | WebSearchCallEventMetadataType0): Provider-specific metadata and additional fields error_message (None | str | Unset): Error message if the event failed """ @@ -33,7 +33,7 @@ class WebSearchCallEvent: action: WebSearchAction type_: Literal["web_search_call"] | Unset = "web_search_call" id: None | str | Unset = UNSET - status: EventStatus | None | Unset = UNSET + status: EventStatus | None | str | Unset = UNSET metadata: None | Unset | WebSearchCallEventMetadataType0 = UNSET error_message: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -110,7 +110,7 @@ def _parse_id(data: object) -> None | str | Unset: id = _parse_id(d.pop("id", UNSET)) - def _parse_status(data: object) -> EventStatus | None | Unset: + def _parse_status(data: object) -> EventStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): @@ -123,7 +123,9 @@ def _parse_status(data: object) -> EventStatus | None | Unset: return status_type_0 except: # noqa: E722 pass - return cast(EventStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for status") + return cast(EventStatus | None | str | Unset, data) status = _parse_status(d.pop("status", UNSET)) diff --git a/src/splunk_ao/shared/column.py b/src/splunk_ao/shared/column.py index e7d4b8f2..24451327 100644 --- a/src/splunk_ao/shared/column.py +++ b/src/splunk_ao/shared/column.py @@ -46,7 +46,7 @@ class Column: ---------- id (str): The column identifier. label (str | None): The display label for the column. - data_type (DataType | None): The data type of the column. + data_type (DataType | str | None): The data type of the column, including unfamiliar server values. filterable (bool): Whether the column can be filtered. sortable (bool): Whether the column can be sorted. description (str | None): A description of the column. @@ -105,7 +105,7 @@ def __init__(self, column_info: ColumnInfo) -> None: def __repr__(self) -> str: """String representation of the column.""" label_str = f", label='{self.label}'" if self.label else "" - type_str = f", type='{self.data_type.value}'" if self.data_type else "" + type_str = f", type='{self.data_type}'" if self.data_type else "" alias_str = f", metric_key_alias='{self.metric_key_alias}'" if self.metric_key_alias else "" return f"Column(id='{self.id}'{label_str}{type_str}{alias_str}, filterable={self.filterable}, sortable={self.sortable})" @@ -139,7 +139,7 @@ def _validate_data_type(self, expected_types: tuple[DataType, ...], operation: s if self.data_type not in expected_types: expected_str = ", ".join(dt.value for dt in expected_types) raise ValidationError( - f"Column '{self.id}' has data type '{self.data_type.value}'. " + f"Column '{self.id}' has data type '{self.data_type}'. " f"The {operation} operation requires one of: {expected_str}" ) diff --git a/tests/test_api_client_integration.py b/tests/test_api_client_integration.py index dece2302..7df2099f 100644 --- a/tests/test_api_client_integration.py +++ b/tests/test_api_client_integration.py @@ -15,6 +15,10 @@ ) from splunk_ao.resources import errors from splunk_ao.resources.api.health import healthcheck_healthcheck_get +from splunk_ao.resources.api.projects import get_projects_projects_get +from splunk_ao.resources.models.project_action import ProjectAction +from splunk_ao.resources.models.user_role import UserRole +from splunk_ao.resources.types import Unset def test_common_http_errors_raise_specific_exceptions(mock_request: Callable) -> None: @@ -96,3 +100,65 @@ def test_unexpected_status_raises_for_unknown_codes(mock_request: Callable) -> N with pytest.raises(errors.UnexpectedStatus) as exc_info: healthcheck_healthcheck_get.sync(client=client) assert exc_info.value.status_code == 418 + + +@pytest.mark.parametrize("role", ["user", "capability_based", "future_role"]) +def test_project_lookup_parses_new_enum_values_in_nested_run(mock_request: Callable, role: str) -> None: + """A successful project lookup preserves enum values added by a newer API.""" + # Given: a project response with a run creator and enum values from a newer API + timestamp = "2026-01-01T00:00:00+00:00" + creator = { + "id": "user-id", + "email": "user@example.com", + "organization_id": "org-id", + "organization_name": "Test org", + "created_at": timestamp, + "updated_at": timestamp, + "role": role, + } + run = { + "id": "run-id", + "created_by": creator["id"], + "num_samples": 0, + "winner": False, + "last_updated_by": creator["id"], + "created_at": timestamp, + "updated_at": timestamp, + "creator": creator, + "task_type": 999, + } + project = { + "id": "project-id", + "name": "demo", + "created_by": creator["id"], + "created_by_user": {"id": creator["id"], "email": creator["email"]}, + "runs": [run], + "created_at": timestamp, + "updated_at": timestamp, + "permissions": [{"action": "rename", "allowed": True}, {"action": "future_action", "allowed": False}], + } + mock_request(method=RequestMethod.GET, path="/projects", status_code=200, json=[project]) + client = ApiClient(host="https://api.galileo.ai/", jwt_token="dummy-token") + + # When: parsing the successful project lookup through the generated endpoint + parsed = get_projects_projects_get.sync(client=client, project_name="demo") + + # Then: new server enum values do not block session initialization + assert isinstance(parsed, list) + parsed_run = parsed[0].runs[0] + assert not isinstance(parsed_run.creator.role, Unset) + if role == "user": + assert parsed_run.creator.role is UserRole.USER + else: + assert type(parsed_run.creator.role) is str + assert parsed_run.creator.role == role + assert not isinstance(parsed_run.task_type, Unset) + assert parsed_run.task_type is not None + assert type(parsed_run.task_type) is int + assert parsed_run.task_type == 999 + assert not isinstance(parsed[0].permissions, Unset) + assert parsed[0].permissions[0].action is ProjectAction.RENAME + serialized = parsed[0].to_dict() + assert serialized["runs"][0]["creator"]["role"] == role + assert serialized["runs"][0]["task_type"] == 999 + assert serialized["permissions"] == project["permissions"] diff --git a/tests/test_api_enums.py b/tests/test_api_enums.py new file mode 100644 index 00000000..50fd27a3 --- /dev/null +++ b/tests/test_api_enums.py @@ -0,0 +1,165 @@ +"""Forward compatibility of generated API enum parsing.""" + +from typing import Any + +import pytest + +from splunk_ao.resources.models.execution_status import ExecutionStatus +from splunk_ao.resources.models.log_records_export_request import LogRecordsExportRequest +from splunk_ao.resources.models.permission import Permission +from splunk_ao.resources.models.project_action import ProjectAction +from splunk_ao.resources.models.run_created_at_filter import RunCreatedAtFilter +from splunk_ao.resources.models.run_db import RunDB +from splunk_ao.resources.models.task_type import TaskType +from splunk_ao.resources.models.user_db import UserDB +from splunk_ao.resources.models.user_role import UserRole +from splunk_ao.resources.types import UNSET + + +@pytest.fixture +def user_payload() -> dict[str, Any]: + """Return a complete user response with synthetic identity data.""" + return { + "id": "user-id", + "email": "user@example.com", + "organization_id": "org-id", + "organization_name": "Test org", + "created_at": "2026-01-01T00:00:00+00:00", + "updated_at": "2026-01-01T00:00:00+00:00", + } + + +@pytest.mark.parametrize("role", ["capability_based", "future_role"]) +def test_unknown_user_role_is_a_raw_string(user_payload: dict[str, Any], role: str) -> None: + # Given: a role added after this SDK's schema snapshot + user_payload["role"] = role + + # When: parsing the user response + user = UserDB.from_dict(user_payload) + + # Then: the exact string survives parsing and serialization + assert type(user.role) is str + assert user.role == role + assert user.to_dict()["role"] == role + with pytest.raises(ValueError): + UserRole(role) + + +def test_known_user_role_remains_an_enum(user_payload: dict[str, Any]) -> None: + # Given: a known role in the response + user_payload["role"] = "user" + + # When: parsing the user response + user = UserDB.from_dict(user_payload) + + # Then: existing enum comparisons and serialization keep working + assert user.role is UserRole.USER + assert user.to_dict()["role"] == "user" + + +@pytest.mark.parametrize("role", [None, 123, [], {}]) +def test_user_role_rejects_wrong_primitive_types(user_payload: dict[str, Any], role: object) -> None: + # Given: a malformed value in a string enum field + user_payload["role"] = role + + # When/Then: open enum parsing still rejects the wrong primitive type + with pytest.raises(TypeError, match="Unexpected value type for role"): + UserDB.from_dict(user_payload) + + +def test_missing_user_role_stays_unset(user_payload: dict[str, Any]) -> None: + # When: parsing a user response that omits the role + user = UserDB.from_dict(user_payload) + + # Then: omission remains distinct from an unknown string value + assert user.role is UNSET + assert "role" not in user.to_dict() + constructed = UserDB(**{**user_payload, "created_at": user.created_at, "updated_at": user.updated_at}) + assert constructed.role is UNSET + + +@pytest.mark.parametrize("task_type", [7, 999, None, True, 7.0, "7", [], {}]) +def test_integer_enum_preserves_known_unknown_and_null_values(user_payload: dict[str, Any], task_type: object) -> None: + # Given: a nullable integer enum in a run response + payload = { + "id": "run-id", + "created_by": "user-id", + "num_samples": 0, + "winner": False, + "last_updated_by": "user-id", + "created_at": "2026-01-01T00:00:00+00:00", + "updated_at": "2026-01-01T00:00:00+00:00", + "creator": user_payload, + "task_type": task_type, + } + + # When/Then: numeric values and null survive, while other types are rejected + if task_type is not None and type(task_type) is not int: + with pytest.raises(TypeError, match="Unexpected value type for task_type"): + RunDB.from_dict(payload) + else: + run = RunDB.from_dict(payload) + if task_type == 7: + assert run.task_type is TaskType.VALUE_7 + elif task_type is None: + assert run.task_type is None + else: + assert type(run.task_type) is int + assert run.to_dict()["task_type"] == task_type + + +def test_inline_enum_accepts_new_operator_while_discriminator_stays_fixed() -> None: + # Given: a new operator in a model identified by a fixed name + payload = {"operator": "future_operator", "value": "2026-01-01T00:00:00+00:00", "name": "created_at"} + + # When/Then: the inline enum stays extensible and the discriminator stays fixed + assert RunCreatedAtFilter.from_dict(payload).to_dict() == payload + with pytest.raises(ValueError, match="name must match const 'created_at'"): + RunCreatedAtFilter.from_dict({**payload, "name": "future_field"}) + + +@pytest.mark.parametrize("allowed", [True, False]) +def test_permission_preserves_unknown_action_and_allow_decision(allowed: bool) -> None: + # Given: an action added to the server after this SDK was generated + payload = {"action": "configure_rate_limit", "allowed": allowed} + + # When: parsing a union of action enums + permission = Permission.from_dict(payload) + + # Then: an unknown action keeps its name without an invented enum category + assert type(permission.action) is str + assert permission.action == "configure_rate_limit" + assert permission.to_dict() == payload + + +def test_permission_uses_known_enum_before_raw_string_fallback() -> None: + # Given: an action from a later enum in the permission union + payload = {"action": "rename", "allowed": True} + + # When: parsing it alongside enums that do not declare the action + permission = Permission.from_dict(payload) + + # Then: known values keep their existing enum type + assert permission.action is ProjectAction.RENAME + assert permission.to_dict() == payload + + +def test_request_serializes_new_service_enum_values() -> None: + # Given: values supported by a newer service + request = LogRecordsExportRequest(root_type="future_root", export_format="future_format") + + # When: serializing a request for the service to validate + payload = request.to_dict() + + # Then: unknown strings survive without requiring new enum members + assert payload["root_type"] == "future_root" + assert payload["export_format"] == "future_format" + + +def test_execution_status_keeps_existing_case_normalization() -> None: + # When: explicitly constructing a known status with legacy casing + status = ExecutionStatus("FAILED") + + # Then: the existing custom enum behavior remains intact + assert status is ExecutionStatus.FAILED + assert str(status) == "failed" diff --git a/tests/test_column.py b/tests/test_column.py index aded85a2..3f692ab0 100644 --- a/tests/test_column.py +++ b/tests/test_column.py @@ -93,6 +93,7 @@ class TestColumnRepresentation: "label,data_type,filterable,sortable,expected_parts", [ ("Name", DataType.TEXT, True, True, ["id='col1'", "label='Name'", "type='text'"]), + ("Future", "future_type", True, True, ["id='col1'", "type='future_type'"]), (None, None, False, False, ["id='col1'", "filterable=False", "sortable=False"]), ], ) @@ -133,6 +134,7 @@ def test_validate_sortable(self, sortable, should_raise, reset_configuration: No [ (DataType.TEXT, (DataType.TEXT, DataType.UUID), False), (DataType.INTEGER, (DataType.TEXT,), True), + ("future_type", (DataType.TEXT,), True), (None, (DataType.TEXT,), True), ], ) diff --git a/tests/test_evaluator.py b/tests/test_evaluator.py index b6bf6855..2db0490f 100644 --- a/tests/test_evaluator.py +++ b/tests/test_evaluator.py @@ -6,8 +6,15 @@ import pytest from galileo_core.schemas.logging.step import StepType +from splunk_ao.evaluator import ( + CodeEvaluator, + DecisionEvaluator, + Evaluator, + LlmEvaluator, + LocalEvaluator, + SplunkAOEvaluator, +) from splunk_ao.evaluators import DecisionVersionOutcomeUnknownError -from splunk_ao.evaluator import CodeEvaluator, DecisionEvaluator, LlmEvaluator, LocalEvaluator, Evaluator from splunk_ao.resources.models import HTTPValidationError, OutputTypeEnum, ScorerResponse, ScorerTypes from splunk_ao.resources.models.invalid_result import InvalidResult from splunk_ao.resources.models.task_result_status import TaskResultStatus @@ -318,6 +325,38 @@ def test_create_handles_api_failure(self, mock_metrics_class: MagicMock, reset_c class TestMetricGet: """Test suite for Evaluator.get() class method.""" + @pytest.mark.parametrize( + ("scorer_type", "expected"), + [ + (ScorerTypes.LLM, LlmEvaluator), + (ScorerTypes.CODE, CodeEvaluator), + (ScorerTypes.DECISION, DecisionEvaluator), + (ScorerTypes.LUNA, SplunkAOEvaluator), + (ScorerTypes.PRESET, SplunkAOEvaluator), + ], + ) + def test_factory_keeps_known_evaluator_types(self, scorer_type: ScorerTypes, expected: type[Evaluator]) -> None: + # When: selecting behavior for a supported server type + evaluator = Evaluator._create_metric_from_type(scorer_type) + + # Then: known types retain their existing evaluator class + assert type(evaluator) is expected + + def test_get_unknown_type_reports_unsupported_evaluator(self, reset_configuration: None) -> None: + # Given: a valid API response for an evaluator newer than the SDK + with patch("splunk_ao.evaluator.Scorers") as service: + response = MagicMock(id="evaluator-id", scorer_type="remote_python") + service.return_value.list.return_value = [response] + + # When: an operation requires the SDK to construct that evaluator + with pytest.raises(APIError) as exc: + Evaluator.get(id="evaluator-id") + + # Then: the SDK does not classify it as a built-in evaluator + assert str(exc.value) == ( + "Unsupported evaluator type: 'remote_python'. Upgrade splunk-ao to use this evaluator." + ) + @patch("splunk_ao.evaluator.Scorers") def test_get_by_name_returns_metric(self, mock_scorers_class: MagicMock, reset_configuration: None) -> None: """Test get() with name returns a synced metric instance.""" diff --git a/tests/test_integration.py b/tests/test_integration.py index a323bd34..13abd7ee 100644 --- a/tests/test_integration.py +++ b/tests/test_integration.py @@ -28,12 +28,12 @@ def create_mock_integration( - provider: IntegrationProvider, is_selected: bool = False, name: str | None = None + provider: IntegrationProvider | str, is_selected: bool = False, name: str | None = None ) -> IntegrationDB: """Create a mock integration DB response.""" mock = MagicMock(spec=IntegrationDB) mock.id = str(uuid4()) - mock.name = name or provider.value + mock.name = name or str(provider) mock.provider = provider mock.created_at = datetime.now() mock.updated_at = datetime.now() @@ -263,14 +263,15 @@ def test_creates_correct_provider_type(self, name, enum_name, provider_class): assert provider.id == str(mock_integration.id) assert provider.is_synced() - def test_creates_generic_provider_for_unknown_type(self): + @pytest.mark.parametrize("provider_name", [IntegrationProvider.MISTRAL, "future_provider"]) + def test_creates_generic_provider_for_unknown_type(self, provider_name): """_to_provider() creates GenericProvider for unsupported types.""" - mock_integration = create_mock_integration(IntegrationProvider.MISTRAL) + mock_integration = create_mock_integration(provider_name) provider = Integration._to_provider(mock_integration) assert isinstance(provider, Provider) - assert provider.name == "mistral" + assert provider.name == str(provider_name) assert provider.is_synced() @@ -375,10 +376,11 @@ class TestProviderModels: @patch("splunk_ao.provider.SplunkAOConfig.get") @patch("splunk_ao.provider.get_available_models_llm_integrations_llm_integration_models_get") - def test_models_returns_model_list(self, mock_get_models, mock_config): + @pytest.mark.parametrize("provider_name", [IntegrationProvider.OPENAI, "future_provider"]) + def test_models_returns_model_list(self, mock_get_models, mock_config, provider_name): """models property returns list of Model objects.""" # Create a synced provider - mock_integration = create_mock_integration(IntegrationProvider.OPENAI) + mock_integration = create_mock_integration(provider_name) provider = Integration._to_provider(mock_integration) # Mock API response with model names @@ -394,7 +396,8 @@ def test_models_returns_model_list(self, mock_get_models, mock_config): assert all(hasattr(model, "provider_name") for model in models) assert models[0].name == "gpt-4o" assert models[0].alias == "gpt-4o" - assert models[0].provider_name == "openai" + assert models[0].provider_name == str(provider_name) + assert mock_get_models.sync.call_args.kwargs["llm_integration"] == str(provider_name) assert str(models[0]) == "gpt-4o" @patch("splunk_ao.provider.SplunkAOConfig.get") diff --git a/tests/test_prepare_open_enums.py b/tests/test_prepare_open_enums.py new file mode 100644 index 00000000..0c353956 --- /dev/null +++ b/tests/test_prepare_open_enums.py @@ -0,0 +1,97 @@ +"""Schema preparation for extensible generated enums.""" + +import sys +from copy import deepcopy +from pathlib import Path +from typing import Any + +import pytest + +sys.path.insert(0, str(Path(__file__).parent.parent / "scripts")) +from prepare_open_enums import prepare_open_enums + + +@pytest.fixture +def document() -> dict[str, Any]: + """Return a small schema containing named enums and their common uses.""" + return { + "components": { + "schemas": { + "Role": {"title": "Role", "type": "string", "enum": ["user", "admin"]}, + "TaskType": {"title": "TaskType", "type": "integer", "enum": [7, 9]}, + "User": { + "type": "object", + "properties": { + "role": { + "$ref": "#/components/schemas/Role", + "description": "Organization role", + "default": "user", + }, + "roles": {"type": "array", "items": {"$ref": "#/components/schemas/Role"}}, + "task": {"anyOf": [{"$ref": "#/components/schemas/TaskType"}, {"type": "null"}]}, + }, + }, + } + } + } + + +def test_enum_uses_expand_without_changing_definitions_or_input(document: dict[str, Any]) -> None: + """Named classes retain their identity while field types gain raw alternatives.""" + original = deepcopy(document) + prepared = prepare_open_enums(document) + schemas = prepared["components"]["schemas"] + fields = schemas["User"]["properties"] + + assert document == original + assert schemas["Role"] == original["components"]["schemas"]["Role"] + assert schemas["TaskType"] == original["components"]["schemas"]["TaskType"] + assert fields["role"]["description"] == "Organization role" + assert "default" not in fields["role"] + assert fields["role"]["anyOf"][-1] == {"type": "string"} + assert fields["roles"]["items"]["anyOf"][-1] == {"type": "string"} + assert fields["task"]["anyOf"] == [{"$ref": "#/components/schemas/TaskType"}, {"type": "null"}, {"type": "integer"}] + + +def test_preparation_is_idempotent(document: dict[str, Any]) -> None: + # When: preparing an already expanded schema + prepared = prepare_open_enums(document) + + # Then: repeated preparation does not nest or duplicate alternatives + assert prepare_open_enums(prepared) == prepared + + +def test_inline_enum_keeps_name_default_and_known_values(document: dict[str, Any]) -> None: + # Given: an inline enum with the title used for its generated class name + enum = {"title": "Operator", "type": "string", "enum": ["eq", "ne"], "default": "eq"} + document["components"]["schemas"]["User"]["properties"]["operator"] = enum + + # When: expanding the inline enum + prepared = prepare_open_enums(document) + operator = prepared["components"]["schemas"]["User"]["properties"]["operator"] + + # Then: the generator can preserve its existing enum class and default + assert operator["title"] == "Operator" + assert operator["default"] == "eq" + assert operator["anyOf"] == [enum, {"type": "string"}] + + +@pytest.mark.parametrize( + "enum", + [ + {"type": "string", "enum": ["fixed"]}, + {"type": "string", "const": "fixed"}, + {"type": "string", "enum": ["a", "b"], "x-ms-enum": {"modelAsString": False}}, + ], +) +def test_constants_and_explicitly_closed_enums_are_unchanged(document: dict[str, Any], enum: dict[str, Any]) -> None: + # Given: a value whose contract explicitly limits its alternatives + document["components"]["schemas"]["Closed"] = enum + document["components"]["schemas"]["User"]["properties"]["closed"] = {"$ref": "#/components/schemas/Closed"} + + # When: preparing the spec + schemas = prepare_open_enums(document)["components"]["schemas"] + + # Then: closed values retain their original schema and references + assert schemas["Closed"] == enum + assert schemas["User"]["properties"]["closed"] == {"$ref": "#/components/schemas/Closed"} diff --git a/tests/test_project.py b/tests/test_project.py index 5db5813f..0735eea3 100644 --- a/tests/test_project.py +++ b/tests/test_project.py @@ -477,14 +477,17 @@ def test_collaborator_hash(self, reset_configuration: None, mock_collaborator: M collaborator_set = {collab1, collab2, collab3} assert len(collaborator_set) == 2 # collab1 and collab2 are equal - def test_collaborator_to_dict(self, reset_configuration: None, mock_collaborator: MagicMock) -> None: + @pytest.mark.parametrize("role", [CollaboratorRole.EDITOR, "future_role"]) + def test_collaborator_to_dict( + self, reset_configuration: None, mock_collaborator: MagicMock, role: CollaboratorRole | str + ) -> None: """Test that to_dict() returns correct dictionary representation.""" created_at = datetime(2024, 1, 1, 12, 0, 0) collab = Collaborator( id=mock_collaborator.id, user_id=mock_collaborator.user_id, project_id="project-123", - role=CollaboratorRole.EDITOR, + role=role, created_at=created_at, email="test@example.com", first_name="Test", @@ -497,7 +500,7 @@ def test_collaborator_to_dict(self, reset_configuration: None, mock_collaborator assert result["id"] == mock_collaborator.id assert result["user_id"] == mock_collaborator.user_id assert result["project_id"] == "project-123" - assert result["role"] == CollaboratorRole.EDITOR.value + assert result["role"] == str(role) assert result["created_at"] == created_at.isoformat() assert result["email"] == "test@example.com" assert result["first_name"] == "Test" @@ -607,6 +610,7 @@ def test_collaborator_equality(self, reset_configuration: None, mock_collaborato ), ], ) + @pytest.mark.parametrize("role", [CollaboratorRole.VIEWER, "future_role"]) def test_from_api_response_permissions_handling( self, reset_configuration: None, @@ -614,6 +618,7 @@ def test_from_api_response_permissions_handling( input_permissions: list | str, expected_permissions: list | None, description: str, + role: CollaboratorRole | str, ) -> None: """Test that _from_api_response handles permissions correctly. @@ -635,7 +640,7 @@ def test_from_api_response_permissions_handling( mock_response = MagicMock() mock_response.id = mock_collaborator.id mock_response.user_id = mock_collaborator.user_id - mock_response.role = CollaboratorRole.VIEWER + mock_response.role = role mock_response.email = mock_collaborator.email mock_response.created_at = datetime(2024, 1, 1, 12, 0, 0) mock_response.first_name = "Test" @@ -645,3 +650,5 @@ def test_from_api_response_permissions_handling( collab = Collaborator._from_api_response(mock_response, project_id="project-123") assert collab.permissions == expected_permissions, description + assert collab.role == role + assert collab.to_dict()["role"] == str(role)