diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index cda7b73c..f5d8adfe 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -238,6 +238,13 @@ 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 class names stay unchanged. Singleton data enums remain open; +constants, discriminator fields, and enums marked `x-ms-enum.modelAsString: false` remain closed. Compatible arrays of +enum alternatives share an item union so every known enum is tried before accepting an unfamiliar value. The templates +check array containers and primitive types. 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 5b3695c9..f8551cbe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -50,6 +50,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 integrations and task types 7, 9 and 12, are kept so reads from those servers keep working. - 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. +- Preserve known categorical roll-up members before using raw string fallbacks, keep singleton data enums extensible, + and reject malformed containers in enum arrays. Preserve enum behavior across inline, inferred, nullable, and wrapped + schema definitions during client generation. ## [0.6.1] diff --git a/README.md b/README.md index 0199c87c..a3f572ec 100644 --- a/README.md +++ b/README.md @@ -690,6 +690,17 @@ 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. Enums with one known value remain extensible. Constants, discriminator fields, and +explicitly closed enums retain their fixed alternatives. Array fields still require arrays. + +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/list_property.py.jinja b/codegen_templates/property_templates/list_property.py.jinja new file mode 100644 index 00000000..2ab7f91f --- /dev/null +++ b/codegen_templates/property_templates/list_property.py.jinja @@ -0,0 +1,85 @@ +{% macro find_enums(property, ns) %} +{% if property.template == "enum_property.py.jinja" %} +{% set ns.has_enum = true %} +{% elif property.template == "union_property.py.jinja" %} +{% for inner_property in property.inner_properties %} +{% set _ = find_enums(inner_property, ns) %} +{% endfor %} +{% elif property.template == "list_property.py.jinja" %} +{% set _ = find_enums(property.inner_property, ns) %} +{% endif %} +{% endmacro %} + +{% macro _check_type(property, source) %} +{% set ns = namespace(has_enum=false) %} +{% set _ = find_enums(property.inner_property, ns) %} +{% if ns.has_enum %} +if not isinstance({{ source }}, list): + raise TypeError("Unexpected value type for {{ property.python_name }}") +{% endif %} +{% endmacro %} + +{% macro construct(property, source) %} +{% set inner_property = property.inner_property %} +{% import "property_templates/" + inner_property.template as inner_template %} +{% if inner_template.construct %} +{% set inner_source = inner_property.python_name + "_data" %} +{% if property.required %} +{{ property.python_name }} = [] +_{{ property.python_name }} = {{ source }} +{{ _check_type(property, "_" + property.python_name) }} +for {{ inner_source }} in (_{{ property.python_name }}): + {{ inner_template.construct(inner_property, inner_source) | indent(4) }} + {{ property.python_name }}.append({{ inner_property.python_name }}) +{% else %} +_{{ property.python_name }} = {{ source }} +{{ property.python_name }}: {{ property.get_type_string() }} = UNSET +if _{{ property.python_name }} is not UNSET: + {{ _check_type(property, "_" + property.python_name) | indent(4) }} + {{ property.python_name }} = [] + for {{ inner_source }} in _{{ property.python_name }}: + {{ inner_template.construct(inner_property, inner_source) | indent(8) }} + {{ property.python_name }}.append({{ inner_property.python_name }}) +{% endif %} +{% else %} +{{ property.python_name }} = cast({{ property.get_type_string(no_optional=True) }}, {{ source }}) +{% endif %} +{% endmacro %} + +{% macro _transform(property, source, destination, transform_method) %} +{% set inner_property = property.inner_property %} +{% import "property_templates/" + inner_property.template as inner_template %} +{% if inner_template.transform %} +{% set inner_source = inner_property.python_name + "_data" %} +{{ _check_type(property, source) }} +{{ destination }} = [] +for {{ inner_source }} in {{ source }}: + {{ inner_template.transform(inner_property, inner_source, inner_property.python_name, transform_method) | indent(4) }} + {{ destination }}.append({{ inner_property.python_name }}) +{% else %} +{{ destination }} = {{ source }} +{% endif %} +{% endmacro %} + +{% macro check_type_for_construct(property, source) %}isinstance({{ source }}, list){% endmacro %} + +{% macro transform(property, source, destination, declare_type=True, skip_unset=False) %} +{% set inner_property = property.inner_property %} +{% set type_string = property.get_type_string(json=True) %} +{% if property.required %} +{{ _transform(property, source, destination, "to_dict") }} +{% else %} +{% if not skip_unset %}{{ destination }}{% if declare_type %}: {{ type_string }}{% endif %} = UNSET{% endif +%} +if not isinstance({{ source }}, Unset): + {{ _transform(property, source, destination, "to_dict") | indent(4)}} +{% endif %} +{% endmacro %} + +{% macro multipart(property, source, destination) %} +{% set inner_property = property.inner_property %} +{% import "property_templates/" + inner_property.template as inner_template %} +{% set inner_source = inner_property.python_name + "_element" %} +{{ _check_type(property, source) }} +for {{ inner_source }} in {{ source }}: + {{ inner_template.multipart(inner_property, inner_source, destination) | indent(4) }} +{% endmacro %} diff --git a/codegen_templates/property_templates/union_property.py.jinja b/codegen_templates/property_templates/union_property.py.jinja index be19f06b..94ec1611 100644 --- a/codegen_templates/property_templates/union_property.py.jinja +++ b/codegen_templates/property_templates/union_property.py.jinja @@ -1,3 +1,19 @@ +{% macro _check_enum_array_type(property, source) %} +{% import "property_templates/list_property.py.jinja" as list_template %} +{% set array_ns = namespace(has_enum=false, only_arrays=true) %} +{% for inner_property in property.inner_properties %} + {% if inner_property.template == "list_property.py.jinja" %} + {% set _ = list_template.find_enums(inner_property.inner_property, array_ns) %} + {% elif inner_property.get_instance_type_string() not in ["None", "Unset"] %} + {% set array_ns.only_arrays = false %} + {% endif %} +{% endfor %} +{% if array_ns.has_enum and array_ns.only_arrays %} +if not isinstance({{ source }}, list){% if "None" in property.get_type_strings_in_union(json=True) %} and {{ source }} is not None{% endif %}{% if not property.required %} and not isinstance({{ source }}, Unset){% endif %}: + raise TypeError("Unexpected value type for {{ property.python_name }}") +{% endif %} +{% endmacro %} + {% macro construct(property, source) %} def _parse_{{ property.python_name }}(data: object) -> {{ property.get_type_string() }}: {% if "None" in property.get_type_strings_in_union(json=True) %} @@ -8,6 +24,7 @@ def _parse_{{ property.python_name }}(data: object) -> {{ property.get_type_stri if isinstance(data, Unset): return data {% endif %} + {{ _check_enum_array_type(property, "data") | indent(4) }} {# Ad Hoc check for Extended*Record types #} {# Ref.: https://app.shortcut.com/galileo/story/46169/error-when-fetching-spans-using-search-get-spans-via-python-sdk #} {% set has_extended_records = false %} @@ -66,11 +83,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 +135,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 @@ -121,6 +151,7 @@ def _parse_{{ property.python_name }}(data: object) -> {{ property.get_type_stri {% macro transform(property, source, destination, declare_type=True) %} {% set ns = namespace(contains_properties_without_transform = false, contains_modified_properties = not property.required, has_if = false) %} +{{ _check_enum_array_type(property, source) }} {% if declare_type %}{{ destination }}: {{ property.get_type_string(json=True) }}{% endif %} {% if not property.required %} 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..cf6c072f --- /dev/null +++ b/scripts/prepare_open_enums.py @@ -0,0 +1,180 @@ +"""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. Constants and discriminator fields remain + closed. Other enums, including singleton enums, accept future values. + A 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 "const" in schema or schema.get("x-ms-enum", {}).get("modelAsString") is False: + return None + values = [value for value in schema.get("enum", []) if value is not None] + value_types = {type(value) for value in values} + kind = "string" if value_types == {str} else "integer" if value_types == {int} else None + declared = schema.get("type") + if kind is not None and ( + declared is None or declared == kind or (isinstance(declared, list) and kind in declared) + ): + return kind + return None + + references = { + f"#/components/schemas/{name}": kind + for name, schema in schemas.items() + if (kind := enum_type(schema)) is not None + } + + closed_fields: set[int] = set() + + def find_discriminators(value: Any) -> None: + """Keep discriminator fields strict even when they use enum references.""" + if isinstance(value, list): + for item in value: + find_discriminators(item) + elif isinstance(value, dict): + discriminator = value.get("discriminator", {}) + name = discriminator.get("propertyName") + if isinstance(name, str): + variants = value.get("oneOf", []) + value.get("anyOf", []) + variants += [{"$ref": ref} for ref in discriminator.get("mapping", {}).values()] + for variant in variants: + target = schemas.get(variant.get("$ref", "").removeprefix("#/components/schemas/"), variant) + field = target.get("properties", {}).get(name) + if field is not None: + closed_fields.add(id(field)) + for item in value.values(): + find_discriminators(item) + + find_discriminators(document) + + def open_type(schema: dict[str, Any]) -> str | None: + """Resolve inline enum schemas and local enum references.""" + if not isinstance(schema, dict) or id(schema) in closed_fields: + return None + if "const" in schema or schema.get("x-ms-enum", {}).get("modelAsString") is False: + return None + if len(schema.get("allOf", [])) == 1: + return open_type(schema["allOf"][0]) + return references.get(schema.get("$ref")) or enum_type(schema) + + def merge_enum_arrays(alternatives: list[dict[str, Any]]) -> list[dict[str, Any]]: + """Try all known item enums before a primitive can accept the array.""" + result: list[dict[str, Any]] = [] + for alternative in alternatives: + item = alternative.get("items", {}) + if alternative.get("type") != "array" or item.get("$ref") not in references: + result.append(alternative) + continue + shape = {key: item for key, item in alternative.items() if key != "items"} + for index, existing in enumerate(result): + if shape != {key: item for key, item in existing.items() if key != "items"}: + continue + existing_items = existing.get("items", {}) + choices = existing_items.get("anyOf", [existing_items]) + if all(choice.get("$ref") in references for choice in choices): + result[index] = {**shape, "items": {"anyOf": [*choices, item]}} + break + else: + result.append(alternative) + return result + + def expand(value: Any, expand_enum: bool = True, field_name: str | None = None) -> 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 + if id(value) in closed_fields: + return deepcopy(value) + + kind = open_type(value) + if kind is not None: + known = deepcopy(value["allOf"][0] if "allOf" in value else value) + if "enum" in known and "title" not in known and field_name is not None: + known["title"] = field_name + if not expand_enum: + return deepcopy(value) if "allOf" in value else known + annotations = { + key: deepcopy(item) for key, item in value.items() if key not in ("$ref", "enum", "type", "allOf") + } + # 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": [known, {"type": kind}]} + + result = {} + for key, item in value.items(): + if key in ("properties", "schemas"): + result[key] = {name: expand(schema, field_name=name) for name, schema in item.items()} + continue + if key == "additionalProperties": + result[key] = expand(item, field_name="AdditionalProperty") + continue + if key not in ("anyOf", "oneOf"): + result[key] = expand(item, field_name=f"{field_name}_item" if key == "items" and field_name else None) + continue + + alternatives = [] + kinds = [] + indices = {id(alternative): index for index, alternative in enumerate(item)} + for index, alternative in enumerate(merge_enum_arrays(item)): + alternative_kind = open_type(alternative) + title = alternative.get("title") + suffix = ( + title + if title is not None and title != value.get("title") + else f"type_{indices.get(id(alternative), index)}" + ) + alternative_name = f"{field_name}_{suffix}" if field_name else None + alternatives.append( + expand(alternative, expand_enum=alternative_kind is None, field_name=alternative_name) + ) + 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 06122a82..b84a984c 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/annotation_queue/create_queue_template_annotation_queues_queue_id_templates_post.py b/src/splunk_ao/resources/api/annotation_queue/create_queue_template_annotation_queues_queue_id_templates_post.py index 5d1f06fb..39a4f067 100644 --- a/src/splunk_ao/resources/api/annotation_queue/create_queue_template_annotation_queues_queue_id_templates_post.py +++ b/src/splunk_ao/resources/api/annotation_queue/create_queue_template_annotation_queues_queue_id_templates_post.py @@ -46,6 +46,7 @@ def _parse_response(*, client: ApiClient, response: httpx.Response) -> HTTPValid if response.status_code == 200: response_200 = [] _response_200 = response.json() + for response_200_item_data in _response_200: response_200_item = AnnotationTemplateDB.from_dict(response_200_item_data) diff --git a/src/splunk_ao/resources/api/annotation_queue/get_queue_templates_annotation_queues_queue_id_templates_get.py b/src/splunk_ao/resources/api/annotation_queue/get_queue_templates_annotation_queues_queue_id_templates_get.py index 5743dba3..d1113fb3 100644 --- a/src/splunk_ao/resources/api/annotation_queue/get_queue_templates_annotation_queues_queue_id_templates_get.py +++ b/src/splunk_ao/resources/api/annotation_queue/get_queue_templates_annotation_queues_queue_id_templates_get.py @@ -41,6 +41,7 @@ def _parse_response(*, client: ApiClient, response: httpx.Response) -> HTTPValid if response.status_code == 200: response_200 = [] _response_200 = response.json() + for response_200_item_data in _response_200: response_200_item = AnnotationTemplateDB.from_dict(response_200_item_data) diff --git a/src/splunk_ao/resources/api/annotation_queue/share_annotation_queue_with_users_annotation_queues_queue_id_users_post.py b/src/splunk_ao/resources/api/annotation_queue/share_annotation_queue_with_users_annotation_queues_queue_id_users_post.py index 802ec106..02dc0aa4 100644 --- a/src/splunk_ao/resources/api/annotation_queue/share_annotation_queue_with_users_annotation_queues_queue_id_users_post.py +++ b/src/splunk_ao/resources/api/annotation_queue/share_annotation_queue_with_users_annotation_queues_queue_id_users_post.py @@ -51,6 +51,7 @@ def _parse_response( if response.status_code == 200: response_200 = [] _response_200 = response.json() + for response_200_item_data in _response_200: response_200_item = UserAnnotationQueueCollaborator.from_dict(response_200_item_data) diff --git a/src/splunk_ao/resources/api/annotation_queue_records/get_annotation_queue_record_annotation_queues_queue_id_records_record_id_get.py b/src/splunk_ao/resources/api/annotation_queue_records/get_annotation_queue_record_annotation_queues_queue_id_records_record_id_get.py index 944cde8a..8fc6f8f9 100644 --- a/src/splunk_ao/resources/api/annotation_queue_records/get_annotation_queue_record_annotation_queues_queue_id_records_record_id_get.py +++ b/src/splunk_ao/resources/api/annotation_queue_records/get_annotation_queue_record_annotation_queues_queue_id_records_record_id_get.py @@ -74,6 +74,7 @@ def _parse_response_200( | PartialExtendedTraceRecord | PartialExtendedWorkflowSpanRecord ): + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") 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..6b17a42d 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,16 +23,23 @@ 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] = {} json_actions: list[str] | Unset = UNSET if not isinstance(actions, Unset): + if not isinstance(actions, list): + raise TypeError("Unexpected value type for actions") + 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 +99,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 +124,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 +145,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 +170,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..31a7c6d0 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]: @@ -37,9 +37,16 @@ def _get_kwargs( json_actions: list[str] | Unset = UNSET if not isinstance(actions, Unset): + if not isinstance(actions, list): + raise TypeError("Unexpected value type for actions") + 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 +119,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 +151,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 +179,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 +211,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/create_group_dataset_collaborators_datasets_dataset_id_groups_post.py b/src/splunk_ao/resources/api/datasets/create_group_dataset_collaborators_datasets_dataset_id_groups_post.py index 6c6ed66a..c43c5553 100644 --- a/src/splunk_ao/resources/api/datasets/create_group_dataset_collaborators_datasets_dataset_id_groups_post.py +++ b/src/splunk_ao/resources/api/datasets/create_group_dataset_collaborators_datasets_dataset_id_groups_post.py @@ -49,6 +49,7 @@ def _parse_response(*, client: ApiClient, response: httpx.Response) -> HTTPValid if response.status_code == 200: response_200 = [] _response_200 = response.json() + for response_200_item_data in _response_200: response_200_item = GroupCollaborator.from_dict(response_200_item_data) diff --git a/src/splunk_ao/resources/api/datasets/create_user_dataset_collaborators_datasets_dataset_id_users_post.py b/src/splunk_ao/resources/api/datasets/create_user_dataset_collaborators_datasets_dataset_id_users_post.py index 662a7b0d..e65875c6 100644 --- a/src/splunk_ao/resources/api/datasets/create_user_dataset_collaborators_datasets_dataset_id_users_post.py +++ b/src/splunk_ao/resources/api/datasets/create_user_dataset_collaborators_datasets_dataset_id_users_post.py @@ -49,6 +49,7 @@ def _parse_response(*, client: ApiClient, response: httpx.Response) -> HTTPValid if response.status_code == 200: response_200 = [] _response_200 = response.json() + for response_200_item_data in _response_200: response_200_item = UserCollaborator.from_dict(response_200_item_data) 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..d2c9a03b 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] = {} @@ -32,9 +32,16 @@ def _get_kwargs( json_actions: list[str] | Unset = UNSET if not isinstance(actions, Unset): + if not isinstance(actions, list): + raise TypeError("Unexpected value type for actions") + 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 +108,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 +138,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 +164,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 +194,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..210c7abb 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]: @@ -37,9 +37,16 @@ def _get_kwargs( json_actions: list[str] | Unset = UNSET if not isinstance(actions, Unset): + if not isinstance(actions, list): + raise TypeError("Unexpected value type for actions") + 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 +120,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 +152,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 +180,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 +212,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/experiment/list_experiments_projects_project_id_experiments_get.py b/src/splunk_ao/resources/api/experiment/list_experiments_projects_project_id_experiments_get.py index b7f39936..01d0edb1 100644 --- a/src/splunk_ao/resources/api/experiment/list_experiments_projects_project_id_experiments_get.py +++ b/src/splunk_ao/resources/api/experiment/list_experiments_projects_project_id_experiments_get.py @@ -48,6 +48,7 @@ def _parse_response(*, client: ApiClient, response: httpx.Response) -> HTTPValid if response.status_code == 200: response_200 = [] _response_200 = response.json() + for response_200_item_data in _response_200: response_200_item = ExperimentResponse.from_dict(response_200_item_data) diff --git a/src/splunk_ao/resources/api/experiment_tags/get_experiment_tags_projects_project_id_experiments_experiment_id_tags_get.py b/src/splunk_ao/resources/api/experiment_tags/get_experiment_tags_projects_project_id_experiments_experiment_id_tags_get.py index b666034e..3fbfc6a6 100644 --- a/src/splunk_ao/resources/api/experiment_tags/get_experiment_tags_projects_project_id_experiments_experiment_id_tags_get.py +++ b/src/splunk_ao/resources/api/experiment_tags/get_experiment_tags_projects_project_id_experiments_experiment_id_tags_get.py @@ -43,6 +43,7 @@ def _parse_response(*, client: ApiClient, response: httpx.Response) -> HTTPValid if response.status_code == 200: response_200 = [] _response_200 = response.json() + for response_200_item_data in _response_200: response_200_item = RunTagDB.from_dict(response_200_item_data) diff --git a/src/splunk_ao/resources/api/integrations/create_group_integration_collaborators_integrations_integration_id_groups_post.py b/src/splunk_ao/resources/api/integrations/create_group_integration_collaborators_integrations_integration_id_groups_post.py index e49d1945..f1f97ed0 100644 --- a/src/splunk_ao/resources/api/integrations/create_group_integration_collaborators_integrations_integration_id_groups_post.py +++ b/src/splunk_ao/resources/api/integrations/create_group_integration_collaborators_integrations_integration_id_groups_post.py @@ -49,6 +49,7 @@ def _parse_response(*, client: ApiClient, response: httpx.Response) -> HTTPValid if response.status_code == 200: response_200 = [] _response_200 = response.json() + for response_200_item_data in _response_200: response_200_item = GroupCollaborator.from_dict(response_200_item_data) diff --git a/src/splunk_ao/resources/api/integrations/create_user_integration_collaborators_integrations_integration_id_users_post.py b/src/splunk_ao/resources/api/integrations/create_user_integration_collaborators_integrations_integration_id_users_post.py index 1419429e..afef3ada 100644 --- a/src/splunk_ao/resources/api/integrations/create_user_integration_collaborators_integrations_integration_id_users_post.py +++ b/src/splunk_ao/resources/api/integrations/create_user_integration_collaborators_integrations_integration_id_users_post.py @@ -49,6 +49,7 @@ def _parse_response(*, client: ApiClient, response: httpx.Response) -> HTTPValid if response.status_code == 200: response_200 = [] _response_200 = response.json() + for response_200_item_data in _response_200: response_200_item = UserCollaborator.from_dict(response_200_item_data) 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 cbaed284..4e1432b5 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 @@ -28,7 +28,7 @@ def _get_kwargs( *, start_time: datetime.datetime, end_time: datetime.datetime, - interval: CostInterval, + interval: CostInterval | str, project_id: None | str | Unset = UNSET, run_id: None | str | Unset = UNSET, ) -> dict[str, Any]: @@ -42,7 +42,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 @@ -119,7 +123,7 @@ def sync_detailed( client: ApiClient, start_time: datetime.datetime, end_time: datetime.datetime, - interval: CostInterval, + interval: CostInterval | str, project_id: None | str | Unset = UNSET, run_id: None | str | Unset = UNSET, ) -> Response[HTTPValidationError | IntegrationCostsResponse]: @@ -128,7 +132,7 @@ def sync_detailed( 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 project_id (None | str | Unset): Optional project filter run_id (None | str | Unset): Optional run / agent stream filter @@ -154,7 +158,7 @@ def sync( client: ApiClient, start_time: datetime.datetime, end_time: datetime.datetime, - interval: CostInterval, + interval: CostInterval | str, project_id: None | str | Unset = UNSET, run_id: None | str | Unset = UNSET, ) -> Optional[HTTPValidationError | IntegrationCostsResponse]: @@ -163,7 +167,7 @@ def sync( 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 project_id (None | str | Unset): Optional project filter run_id (None | str | Unset): Optional run / agent stream filter @@ -185,7 +189,7 @@ async def asyncio_detailed( client: ApiClient, start_time: datetime.datetime, end_time: datetime.datetime, - interval: CostInterval, + interval: CostInterval | str, project_id: None | str | Unset = UNSET, run_id: None | str | Unset = UNSET, ) -> Response[HTTPValidationError | IntegrationCostsResponse]: @@ -194,7 +198,7 @@ async def asyncio_detailed( 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 project_id (None | str | Unset): Optional project filter run_id (None | str | Unset): Optional run / agent stream filter @@ -220,7 +224,7 @@ async def asyncio( client: ApiClient, start_time: datetime.datetime, end_time: datetime.datetime, - interval: CostInterval, + interval: CostInterval | str, project_id: None | str | Unset = UNSET, run_id: None | str | Unset = UNSET, ) -> Optional[HTTPValidationError | IntegrationCostsResponse]: @@ -229,7 +233,7 @@ async def asyncio( 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 project_id (None | str | Unset): Optional project filter run_id (None | str | Unset): Optional run / agent stream filter 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 868cce75..e6593695 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,7 +70,7 @@ 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 Get the caller's integration for a provider, in that provider's own shape. @@ -83,7 +83,7 @@ def sync_detailed(name: IntegrationProvider, *, client: ApiClient) -> Response[H The provider-specific view of the 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. @@ -100,7 +100,7 @@ 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 Get the caller's integration for a provider, in that provider's own shape. @@ -113,7 +113,7 @@ def sync(name: IntegrationProvider, *, client: ApiClient) -> Optional[HTTPValida The provider-specific view of the 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. @@ -126,7 +126,7 @@ 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 Get the caller's integration for a provider, in that provider's own shape. @@ -139,7 +139,7 @@ async def asyncio_detailed(name: IntegrationProvider, *, client: ApiClient) -> R The provider-specific view of the 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. @@ -156,7 +156,7 @@ 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 Get the caller's integration for a provider, in that provider's own shape. @@ -169,7 +169,7 @@ async def asyncio(name: IntegrationProvider, *, client: ApiClient) -> Optional[H The provider-specific view of the 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 91b80dbd..419f063b 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 @@ -111,7 +111,7 @@ def sync_detailed( GalileoServerException: When the provider rejects them. 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. @@ -129,7 +129,7 @@ def sync_detailed( def sync( - name: IntegrationProvider, *, client: ApiClient + name: IntegrationProvider | str, *, client: ApiClient ) -> Optional[ GetIntegrationStatusIntegrationsNameStatusGetResponseGetIntegrationStatusIntegrationsNameStatusGet | HTTPValidationError @@ -149,7 +149,7 @@ def sync( GalileoServerException: When the provider rejects them. 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. @@ -163,7 +163,7 @@ def sync( async def asyncio_detailed( - name: IntegrationProvider, *, client: ApiClient + name: IntegrationProvider | str, *, client: ApiClient ) -> Response[ GetIntegrationStatusIntegrationsNameStatusGetResponseGetIntegrationStatusIntegrationsNameStatusGet | HTTPValidationError @@ -183,7 +183,7 @@ async def asyncio_detailed( GalileoServerException: When the provider rejects them. 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. @@ -201,7 +201,7 @@ async def asyncio_detailed( async def asyncio( - name: IntegrationProvider, *, client: ApiClient + name: IntegrationProvider | str, *, client: ApiClient ) -> Optional[ GetIntegrationStatusIntegrationsNameStatusGetResponseGetIntegrationStatusIntegrationsNameStatusGet | HTTPValidationError @@ -221,7 +221,7 @@ async def asyncio( GalileoServerException: When the provider rejects them. 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/list_integrations_integrations_get.py b/src/splunk_ao/resources/api/integrations/list_integrations_integrations_get.py index bfc5c28b..2ca2b30a 100644 --- a/src/splunk_ao/resources/api/integrations/list_integrations_integrations_get.py +++ b/src/splunk_ao/resources/api/integrations/list_integrations_integrations_get.py @@ -37,6 +37,7 @@ def _parse_response(*, client: ApiClient, response: httpx.Response) -> HTTPValid if response.status_code == 200: response_200 = [] _response_200 = response.json() + for response_200_item_data in _response_200: response_200_item = IntegrationDB.from_dict(response_200_item_data) 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..32b77a94 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,19 +26,33 @@ 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] = {} params: dict[str, Any] = {} + if ( + not isinstance(multimodal_capabilities, list) + and multimodal_capabilities is not None + and not isinstance(multimodal_capabilities, Unset) + ): + raise TypeError("Unexpected value type for multimodal_capabilities") + json_multimodal_capabilities: list[str] | None | Unset if isinstance(multimodal_capabilities, Unset): json_multimodal_capabilities = UNSET elif isinstance(multimodal_capabilities, list): + if not isinstance(multimodal_capabilities, list): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0") + 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 +129,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 +141,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 +163,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 +175,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 +195,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 +207,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 +229,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 +241,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..589ce989 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,18 +25,32 @@ 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] = {} + if ( + not isinstance(multimodal_capabilities, list) + and multimodal_capabilities is not None + and not isinstance(multimodal_capabilities, Unset) + ): + raise TypeError("Unexpected value type for multimodal_capabilities") + json_multimodal_capabilities: list[str] | None | Unset if isinstance(multimodal_capabilities, Unset): json_multimodal_capabilities = UNSET elif isinstance(multimodal_capabilities, list): + if not isinstance(multimodal_capabilities, list): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0") + 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 +123,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 +133,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 +151,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 +161,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 +175,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 +185,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 +203,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 +213,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/log_stream/list_log_streams_projects_project_id_log_streams_get.py b/src/splunk_ao/resources/api/log_stream/list_log_streams_projects_project_id_log_streams_get.py index 21e066a1..e51969dc 100644 --- a/src/splunk_ao/resources/api/log_stream/list_log_streams_projects_project_id_log_streams_get.py +++ b/src/splunk_ao/resources/api/log_stream/list_log_streams_projects_project_id_log_streams_get.py @@ -48,6 +48,7 @@ def _parse_response(*, client: ApiClient, response: httpx.Response) -> HTTPValid if response.status_code == 200: response_200 = [] _response_200 = response.json() + for response_200_item_data in _response_200: response_200_item = LogStreamResponse.from_dict(response_200_item_data) diff --git a/src/splunk_ao/resources/api/projects/create_group_project_collaborators_projects_project_id_groups_post.py b/src/splunk_ao/resources/api/projects/create_group_project_collaborators_projects_project_id_groups_post.py index de7d1b91..52aa3a7a 100644 --- a/src/splunk_ao/resources/api/projects/create_group_project_collaborators_projects_project_id_groups_post.py +++ b/src/splunk_ao/resources/api/projects/create_group_project_collaborators_projects_project_id_groups_post.py @@ -51,6 +51,7 @@ def _parse_response( if response.status_code == 200: response_200 = [] _response_200 = response.json() + for response_200_item_data in _response_200: response_200_item = ProjectGroupCollaborator.from_dict(response_200_item_data) diff --git a/src/splunk_ao/resources/api/projects/create_user_project_collaborators_projects_project_id_users_post.py b/src/splunk_ao/resources/api/projects/create_user_project_collaborators_projects_project_id_users_post.py index d633f497..b17756d5 100644 --- a/src/splunk_ao/resources/api/projects/create_user_project_collaborators_projects_project_id_users_post.py +++ b/src/splunk_ao/resources/api/projects/create_user_project_collaborators_projects_project_id_users_post.py @@ -51,6 +51,7 @@ def _parse_response( if response.status_code == 200: response_200 = [] _response_200 = response.json() + for response_200_item_data in _response_200: response_200_item = ProjectUserCollaborator.from_dict(response_200_item_data) 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..8829c3e5 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] = {} @@ -56,6 +56,7 @@ def _parse_response(*, client: ApiClient, response: httpx.Response) -> HTTPValid if response.status_code == 200: response_200 = [] _response_200 = response.json() + for response_200_item_data in _response_200: response_200_item = ProjectDBThin.from_dict(response_200_item_data) @@ -98,7 +99,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 +110,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 +128,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 +139,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 +153,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 +164,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 +182,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 +193,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_collaborator_roles_collaborator_roles_get.py b/src/splunk_ao/resources/api/projects/get_collaborator_roles_collaborator_roles_get.py index 05a9b381..6d7cb230 100644 --- a/src/splunk_ao/resources/api/projects/get_collaborator_roles_collaborator_roles_get.py +++ b/src/splunk_ao/resources/api/projects/get_collaborator_roles_collaborator_roles_get.py @@ -36,6 +36,7 @@ def _parse_response(*, client: ApiClient, response: httpx.Response) -> list[Coll if response.status_code == 200: response_200 = [] _response_200 = response.json() + for response_200_item_data in _response_200: response_200_item = CollaboratorRoleInfo.from_dict(response_200_item_data) 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 3f90e39d..68bd1c5f 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[Literal["update"] | ProjectAction] | Unset = UNSET, + actions: list[Literal["update"] | ProjectAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> dict[str, Any]: @@ -37,6 +37,9 @@ def _get_kwargs( json_actions: list[Literal["update"] | str] | Unset = UNSET if not isinstance(actions, Unset): + if not isinstance(actions, list): + raise TypeError("Unexpected value type for actions") + json_actions = [] for actions_item_data in actions: actions_item: Literal["update"] | str @@ -119,7 +122,7 @@ def sync_detailed( *, client: ApiClient, body: ProjectCollectionParams | Unset, - actions: list[Literal["update"] | ProjectAction] | Unset = UNSET, + actions: list[Literal["update"] | ProjectAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> Response[GetProjectsPaginatedResponse | HTTPValidationError]: @@ -130,7 +133,7 @@ def sync_detailed( If provided, filters on project_name and project_type. Args: - actions (list[Literal['update'] | ProjectAction] | Unset): Actions to include in + actions (list[Literal['update'] | ProjectAction | str] | Unset): Actions to include in 'permissions'. Deprecated 'update' and log access actions are ignored. starting_token (int | Unset): Default: 0. limit (int | Unset): Default: 100. @@ -155,7 +158,7 @@ def sync( *, client: ApiClient, body: ProjectCollectionParams | Unset, - actions: list[Literal["update"] | ProjectAction] | Unset = UNSET, + actions: list[Literal["update"] | ProjectAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> Optional[GetProjectsPaginatedResponse | HTTPValidationError]: @@ -166,7 +169,7 @@ def sync( If provided, filters on project_name and project_type. Args: - actions (list[Literal['update'] | ProjectAction] | Unset): Actions to include in + actions (list[Literal['update'] | ProjectAction | str] | Unset): Actions to include in 'permissions'. Deprecated 'update' and log access actions are ignored. starting_token (int | Unset): Default: 0. limit (int | Unset): Default: 100. @@ -187,7 +190,7 @@ async def asyncio_detailed( *, client: ApiClient, body: ProjectCollectionParams | Unset, - actions: list[Literal["update"] | ProjectAction] | Unset = UNSET, + actions: list[Literal["update"] | ProjectAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> Response[GetProjectsPaginatedResponse | HTTPValidationError]: @@ -198,7 +201,7 @@ async def asyncio_detailed( If provided, filters on project_name and project_type. Args: - actions (list[Literal['update'] | ProjectAction] | Unset): Actions to include in + actions (list[Literal['update'] | ProjectAction | str] | Unset): Actions to include in 'permissions'. Deprecated 'update' and log access actions are ignored. starting_token (int | Unset): Default: 0. limit (int | Unset): Default: 100. @@ -223,7 +226,7 @@ async def asyncio( *, client: ApiClient, body: ProjectCollectionParams | Unset, - actions: list[Literal["update"] | ProjectAction] | Unset = UNSET, + actions: list[Literal["update"] | ProjectAction | str] | Unset = UNSET, starting_token: int | Unset = 0, limit: int | Unset = 100, ) -> Optional[GetProjectsPaginatedResponse | HTTPValidationError]: @@ -234,7 +237,7 @@ async def asyncio( If provided, filters on project_name and project_type. Args: - actions (list[Literal['update'] | ProjectAction] | Unset): Actions to include in + actions (list[Literal['update'] | ProjectAction | str] | Unset): Actions to include in 'permissions'. Deprecated 'update' and log access actions are ignored. starting_token (int | Unset): Default: 0. limit (int | Unset): Default: 100. 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..5fed24a5 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] = {} @@ -65,6 +65,7 @@ def _parse_response(*, client: ApiClient, response: httpx.Response) -> HTTPValid if response.status_code == 200: response_200 = [] _response_200 = response.json() + for response_200_item_data in _response_200: response_200_item = ProjectDB.from_dict(response_200_item_data) @@ -105,7 +106,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 +118,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 +136,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 +148,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 +162,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 +174,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 +192,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 +204,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/api/prompts/create_group_prompt_template_collaborators_templates_template_id_groups_post.py b/src/splunk_ao/resources/api/prompts/create_group_prompt_template_collaborators_templates_template_id_groups_post.py index fa7f4456..5a234aca 100644 --- a/src/splunk_ao/resources/api/prompts/create_group_prompt_template_collaborators_templates_template_id_groups_post.py +++ b/src/splunk_ao/resources/api/prompts/create_group_prompt_template_collaborators_templates_template_id_groups_post.py @@ -49,6 +49,7 @@ def _parse_response(*, client: ApiClient, response: httpx.Response) -> HTTPValid if response.status_code == 200: response_200 = [] _response_200 = response.json() + for response_200_item_data in _response_200: response_200_item = GroupCollaborator.from_dict(response_200_item_data) diff --git a/src/splunk_ao/resources/api/prompts/create_user_prompt_template_collaborators_templates_template_id_users_post.py b/src/splunk_ao/resources/api/prompts/create_user_prompt_template_collaborators_templates_template_id_users_post.py index 34bd0536..be78afeb 100644 --- a/src/splunk_ao/resources/api/prompts/create_user_prompt_template_collaborators_templates_template_id_users_post.py +++ b/src/splunk_ao/resources/api/prompts/create_user_prompt_template_collaborators_templates_template_id_users_post.py @@ -49,6 +49,7 @@ def _parse_response(*, client: ApiClient, response: httpx.Response) -> HTTPValid if response.status_code == 200: response_200 = [] _response_200 = response.json() + for response_200_item_data in _response_200: response_200_item = UserCollaborator.from_dict(response_200_item_data) diff --git a/src/splunk_ao/resources/api/prompts/get_project_templates_projects_project_id_templates_get.py b/src/splunk_ao/resources/api/prompts/get_project_templates_projects_project_id_templates_get.py index faa2b46c..a8b9cfb2 100644 --- a/src/splunk_ao/resources/api/prompts/get_project_templates_projects_project_id_templates_get.py +++ b/src/splunk_ao/resources/api/prompts/get_project_templates_projects_project_id_templates_get.py @@ -43,6 +43,7 @@ def _parse_response( if response.status_code == 200: response_200 = [] _response_200 = response.json() + for response_200_item_data in _response_200: response_200_item = BasePromptTemplateResponse.from_dict(response_200_item_data) diff --git a/src/splunk_ao/resources/api/protect/invoke_protect_invoke_post.py b/src/splunk_ao/resources/api/protect/invoke_protect_invoke_post.py index 49e4b6be..70f5c76e 100644 --- a/src/splunk_ao/resources/api/protect/invoke_protect_invoke_post.py +++ b/src/splunk_ao/resources/api/protect/invoke_protect_invoke_post.py @@ -45,6 +45,7 @@ def _parse_response( if response.status_code == 200: def _parse_response_200(data: object) -> InvokeResponse | ProtectResponse: + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/api/trace/get_span_projects_project_id_spans_span_id_get.py b/src/splunk_ao/resources/api/trace/get_span_projects_project_id_spans_span_id_get.py index 8db33d9b..acfb3281 100644 --- a/src/splunk_ao/resources/api/trace/get_span_projects_project_id_spans_span_id_get.py +++ b/src/splunk_ao/resources/api/trace/get_span_projects_project_id_spans_span_id_get.py @@ -75,6 +75,7 @@ def _parse_response_200( | ExtendedToolSpanRecordWithChildren | ExtendedWorkflowSpanRecordWithChildren ): + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") diff --git a/src/splunk_ao/resources/api/trace/get_trace_projects_project_id_traces_trace_id_get.py b/src/splunk_ao/resources/api/trace/get_trace_projects_project_id_traces_trace_id_get.py index 343cdcb6..5617dabc 100644 --- a/src/splunk_ao/resources/api/trace/get_trace_projects_project_id_traces_trace_id_get.py +++ b/src/splunk_ao/resources/api/trace/get_trace_projects_project_id_traces_trace_id_get.py @@ -51,6 +51,7 @@ def _parse_response( if response.status_code == 200: def _parse_response_200(data: object) -> ExtendedTraceRecordWithChildren | StubTraceRecord: + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") diff --git a/src/splunk_ao/resources/models/action_result.py b/src/splunk_ao/resources/models/action_result.py index 456285fa..15d9db30 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,21 @@ 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 +42,22 @@ 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/add_records_to_queue_request.py b/src/splunk_ao/resources/models/add_records_to_queue_request.py index 67674fd8..88bf9893 100644 --- a/src/splunk_ao/resources/models/add_records_to_queue_request.py +++ b/src/splunk_ao/resources/models/add_records_to_queue_request.py @@ -62,6 +62,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_record_selector( data: object, ) -> AnnotationQueueRecordsByFilterTree | AnnotationQueueRecordsByRecordIDs: + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/agent_span.py b/src/splunk_ao/resources/models/agent_span.py index 394a0307..4e04932f 100644 --- a/src/splunk_ao/resources/models/agent_span.py +++ b/src/splunk_ao/resources/models/agent_span.py @@ -60,7 +60,7 @@ class AgentSpan: parent_id (None | str | Unset): Galileo ID of the parent of this span spans (list[AgentSpan | ControlSpan | HttpSpan | LlmSpan | RetrieverSpan | ToolSpan | WorkflowSpan] | Unset): Child spans. - agent_type (AgentType | Unset): + agent_type (AgentType | str | Unset): Agent type. agent_name (None | str | Unset): Name of the agent. """ @@ -89,7 +89,7 @@ class AgentSpan: step_number: int | None | Unset = UNSET parent_id: None | str | Unset = UNSET spans: list[AgentSpan | ControlSpan | HttpSpan | LlmSpan | RetrieverSpan | ToolSpan | WorkflowSpan] | Unset = UNSET - agent_type: AgentType | Unset = UNSET + agent_type: AgentType | str | Unset = UNSET agent_name: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -303,9 +303,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 agent_name: None | str | Unset if isinstance(self.agent_name, Unset): @@ -390,11 +394,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | list[Message] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: input_type_1_item = Message.from_dict(input_type_1_item_data) @@ -408,9 +414,11 @@ def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | lis raise TypeError() input_type_2 = [] _input_type_2 = data + for input_type_2_item_data in _input_type_2: def _parse_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -443,11 +451,13 @@ def _parse_redacted_input( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: redacted_input_type_1_item = Message.from_dict(redacted_input_type_1_item_data) @@ -461,9 +471,11 @@ def _parse_redacted_input( raise TypeError() redacted_input_type_2 = [] _redacted_input_type_2 = data + for redacted_input_type_2_item_data in _redacted_input_type_2: def _parse_redacted_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -496,6 +508,7 @@ def _parse_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -509,6 +522,7 @@ def _parse_output( raise TypeError() output_type_2 = [] _output_type_2 = data + for output_type_2_item_data in _output_type_2: output_type_2_item = Document.from_dict(output_type_2_item_data) @@ -522,9 +536,11 @@ def _parse_output( raise TypeError() output_type_3 = [] _output_type_3 = data + for output_type_3_item_data in _output_type_3: def _parse_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -568,6 +584,7 @@ def _parse_redacted_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -581,6 +598,7 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_2 = [] _redacted_output_type_2 = data + for redacted_output_type_2_item_data in _redacted_output_type_2: redacted_output_type_2_item = Document.from_dict(redacted_output_type_2_item_data) @@ -594,9 +612,11 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_3 = [] _redacted_output_type_3 = data + for redacted_output_type_3_item_data in _redacted_output_type_3: def _parse_redacted_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -656,6 +676,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -672,6 +693,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -681,6 +703,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -690,6 +713,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -706,6 +730,7 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) id = _parse_id(d.pop("id", UNSET)) @@ -715,6 +740,7 @@ def _parse_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_id = _parse_session_id(d.pop("session_id", UNSET)) @@ -724,6 +750,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -733,6 +760,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) @@ -742,6 +770,7 @@ def _parse_parent_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) parent_id = _parse_parent_id(d.pop("parent_id", UNSET)) @@ -757,6 +786,7 @@ def _parse_parent_id(data: object) -> None | str | Unset: def _parse_spans_item( data: object, ) -> AgentSpan | ControlSpan | HttpSpan | LlmSpan | RetrieverSpan | ToolSpan | WorkflowSpan: + try: if not isinstance(data, dict): raise TypeError() @@ -815,18 +845,30 @@ 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)) def _parse_agent_name(data: object) -> None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) agent_name = _parse_agent_name(d.pop("agent_name", UNSET)) 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..a96d77ae 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): @@ -110,14 +114,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() @@ -151,18 +158,30 @@ 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", UNSET)) @@ -172,6 +191,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) 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..2ad79549 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): @@ -110,14 +114,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() @@ -151,18 +158,30 @@ 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", UNSET)) @@ -172,6 +191,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) diff --git a/src/splunk_ao/resources/models/aggregated_trace_view_graph.py b/src/splunk_ao/resources/models/aggregated_trace_view_graph.py index 45834dbe..493fc0b7 100644 --- a/src/splunk_ao/resources/models/aggregated_trace_view_graph.py +++ b/src/splunk_ao/resources/models/aggregated_trace_view_graph.py @@ -69,6 +69,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) nodes = [] _nodes = d.pop("nodes") + for nodes_item_data in _nodes: nodes_item = AggregatedTraceViewNode.from_dict(nodes_item_data) @@ -76,6 +77,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: edges = [] _edges = d.pop("edges") + for edges_item_data in _edges: edges_item = AggregatedTraceViewEdge.from_dict(edges_item_data) @@ -86,6 +88,7 @@ def _parse_edge_occurrences_histogram(data: object) -> Histogram | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() 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 73ff12a7..1ad5f960 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): Identifier for this grouped graph node within the current response. 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 @@ -108,11 +112,26 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_name(data: object) -> None | str: if data is None: return data + return cast(None | str, data) 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") @@ -129,6 +148,7 @@ def _parse_parent_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) parent_id = _parse_parent_id(d.pop("parent_id", UNSET)) diff --git a/src/splunk_ao/resources/models/aggregated_trace_view_node_metrics.py b/src/splunk_ao/resources/models/aggregated_trace_view_node_metrics.py index 832fa366..d7a512ea 100644 --- a/src/splunk_ao/resources/models/aggregated_trace_view_node_metrics.py +++ b/src/splunk_ao/resources/models/aggregated_trace_view_node_metrics.py @@ -44,6 +44,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: for prop_name, prop_dict in d.items(): def _parse_additional_property(data: object) -> CategoricalMetricInfo | SystemMetricInfo: + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/aggregated_trace_view_request.py b/src/splunk_ao/resources/models/aggregated_trace_view_request.py index 320b6a9b..9bba3b40 100644 --- a/src/splunk_ao/resources/models/aggregated_trace_view_request.py +++ b/src/splunk_ao/resources/models/aggregated_trace_view_request.py @@ -127,6 +127,7 @@ def _parse_filters_item( | LogRecordsNumberFilter | LogRecordsTextFilter ): + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/aggregated_trace_view_response.py b/src/splunk_ao/resources/models/aggregated_trace_view_response.py index 7697557d..c32bcb68 100644 --- a/src/splunk_ao/resources/models/aggregated_trace_view_response.py +++ b/src/splunk_ao/resources/models/aggregated_trace_view_response.py @@ -91,6 +91,7 @@ def _parse_start_time(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -108,6 +109,7 @@ def _parse_end_time(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() diff --git a/src/splunk_ao/resources/models/and_node_log_records_filter.py b/src/splunk_ao/resources/models/and_node_log_records_filter.py index 5e49c994..17462ae2 100644 --- a/src/splunk_ao/resources/models/and_node_log_records_filter.py +++ b/src/splunk_ao/resources/models/and_node_log_records_filter.py @@ -59,6 +59,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) and_ = [] _and_ = d.pop("and") + for and_item_data in _and_: def _parse_and_item( @@ -66,6 +67,7 @@ def _parse_and_item( ) -> ( AndNodeLogRecordsFilter | FilterLeafLogRecordsFilter | NotNodeLogRecordsFilter | OrNodeLogRecordsFilter ): + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/annotation_aggregate.py b/src/splunk_ao/resources/models/annotation_aggregate.py index 5f31ae3f..9097a99c 100644 --- a/src/splunk_ao/resources/models/annotation_aggregate.py +++ b/src/splunk_ao/resources/models/annotation_aggregate.py @@ -91,6 +91,7 @@ def _parse_aggregate( | AnnotationTextAggregate | AnnotationTreeChoiceAggregate ): + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/annotation_agreement_aggregate.py b/src/splunk_ao/resources/models/annotation_agreement_aggregate.py index 45442ad6..c1a81cac 100644 --- a/src/splunk_ao/resources/models/annotation_agreement_aggregate.py +++ b/src/splunk_ao/resources/models/annotation_agreement_aggregate.py @@ -26,6 +26,7 @@ class AnnotationAgreementAggregate: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + buckets = [] for buckets_item_data in self.buckets: buckets_item = buckets_item_data.to_dict() @@ -46,6 +47,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) buckets = [] _buckets = d.pop("buckets") + for buckets_item_data in _buckets: buckets_item = AnnotationAgreementBucket.from_dict(buckets_item_data) diff --git a/src/splunk_ao/resources/models/annotation_agreement_bucket.py b/src/splunk_ao/resources/models/annotation_agreement_bucket.py index bacbc442..40ba5d37 100644 --- a/src/splunk_ao/resources/models/annotation_agreement_bucket.py +++ b/src/splunk_ao/resources/models/annotation_agreement_bucket.py @@ -45,6 +45,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_max_exclusive(data: object) -> float | None: if data is None: return data + return cast(float | None, data) max_exclusive = _parse_max_exclusive(d.pop("max_exclusive")) diff --git a/src/splunk_ao/resources/models/annotation_like_dislike_aggregate.py b/src/splunk_ao/resources/models/annotation_like_dislike_aggregate.py index 5894ce52..21224f52 100644 --- a/src/splunk_ao/resources/models/annotation_like_dislike_aggregate.py +++ b/src/splunk_ao/resources/models/annotation_like_dislike_aggregate.py @@ -72,6 +72,7 @@ def _parse_tie_count(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) tie_count = _parse_tie_count(d.pop("tie_count", UNSET)) diff --git a/src/splunk_ao/resources/models/annotation_queue_count_request.py b/src/splunk_ao/resources/models/annotation_queue_count_request.py index ca484a6f..cc5c767a 100644 --- a/src/splunk_ao/resources/models/annotation_queue_count_request.py +++ b/src/splunk_ao/resources/models/annotation_queue_count_request.py @@ -87,6 +87,7 @@ def _parse_filter_tree( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() 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..c7f5e3ff 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,23 @@ 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 +50,22 @@ 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_details_response.py b/src/splunk_ao/resources/models/annotation_queue_details_response.py index 7d6c36b6..c9ac78bf 100644 --- a/src/splunk_ao/resources/models/annotation_queue_details_response.py +++ b/src/splunk_ao/resources/models/annotation_queue_details_response.py @@ -115,6 +115,7 @@ def _parse_annotation_aggregates( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -134,6 +135,7 @@ def _parse_annotation_aggregates_by_annotator( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -155,6 +157,7 @@ def _parse_overall_annotation_agreement(data: object) -> AnnotationAgreementAggr return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() 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..5d8250b2 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 @@ -100,6 +104,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_record_selector( data: object, ) -> AnnotationQueueRecordsByFilterTree | AnnotationQueueRecordsByRecordIDs: + try: if not isinstance(data, dict): raise TypeError() @@ -121,6 +126,7 @@ def _parse_column_ids(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -133,12 +139,23 @@ 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) @@ -147,6 +164,7 @@ def _parse_file_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) file_name = _parse_file_name(d.pop("file_name", 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..259212c9 100644 --- a/src/splunk_ao/resources/models/annotation_queue_id_filter.py +++ b/src/splunk_ao/resources/models/annotation_queue_id_filter.py @@ -18,15 +18,16 @@ 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]: + value: list[str] | str if isinstance(self.value, list): value = [] @@ -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, AnnotationQueueIDFilterOperator): operator = self.operator.value + else: + operator = self.operator field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -59,14 +64,17 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) def _parse_value(data: object) -> list[str] | str: + try: if not isinstance(data, list): raise TypeError() value_type_1 = [] _value_type_1 = data + for value_type_1_item_data in _value_type_1: def _parse_value_type_1_item(data: object) -> str: + return cast(str, data) value_type_1_item = _parse_value_type_1_item(value_type_1_item_data) @@ -84,12 +92,23 @@ 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..f4e25813 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,25 @@ 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,9 +60,25 @@ 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: if not isinstance(data, list): raise TypeError() 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..d3629815 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,23 @@ 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,9 +57,25 @@ 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: if not isinstance(data, list): raise TypeError() 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..7dbb6180 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,23 @@ 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,9 +57,25 @@ 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: if not isinstance(data, list): raise TypeError() 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..6de37d34 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,23 @@ 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,9 +57,25 @@ 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: if not isinstance(data, list): raise TypeError() 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..11094e50 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,23 @@ 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,9 +57,25 @@ 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: if not isinstance(data, list): raise TypeError() 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..0eb2ff6e 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,23 @@ 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,9 +57,25 @@ 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: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/annotation_queue_partial_search_request.py b/src/splunk_ao/resources/models/annotation_queue_partial_search_request.py index b4e73c85..9031e82a 100644 --- a/src/splunk_ao/resources/models/annotation_queue_partial_search_request.py +++ b/src/splunk_ao/resources/models/annotation_queue_partial_search_request.py @@ -146,6 +146,7 @@ def _parse_previous_last_row_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) previous_last_row_id = _parse_previous_last_row_id(d.pop("previous_last_row_id", UNSET)) @@ -164,6 +165,7 @@ def _parse_filter_tree( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -221,6 +223,7 @@ def _parse_sort(data: object) -> LogRecordsSortClause | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/annotation_queue_records_by_filter_tree.py b/src/splunk_ao/resources/models/annotation_queue_records_by_filter_tree.py index a74e1526..3b0e2e29 100644 --- a/src/splunk_ao/resources/models/annotation_queue_records_by_filter_tree.py +++ b/src/splunk_ao/resources/models/annotation_queue_records_by_filter_tree.py @@ -68,6 +68,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_filter_tree( data: object, ) -> AndNodeLogRecordsFilter | FilterLeafLogRecordsFilter | NotNodeLogRecordsFilter | OrNodeLogRecordsFilter: + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/annotation_queue_response.py b/src/splunk_ao/resources/models/annotation_queue_response.py index acf79502..d99667b7 100644 --- a/src/splunk_ao/resources/models/annotation_queue_response.py +++ b/src/splunk_ao/resources/models/annotation_queue_response.py @@ -179,6 +179,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_description(data: object) -> None | str: if data is None: return data + return cast(None | str, data) description = _parse_description(d.pop("description")) @@ -190,6 +191,7 @@ def _parse_description(data: object) -> None | str: def _parse_created_by_user(data: object) -> None | UserInfo: if data is None: return data + try: if not isinstance(data, dict): raise TypeError() @@ -224,6 +226,7 @@ def _parse_num_logs_annotated(data: object) -> AnnotationQueueResponseNumLogsAnn return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -241,6 +244,7 @@ def _parse_progress(data: object) -> AnnotationQueueResponseProgressType0 | None return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -258,6 +262,7 @@ def _parse_overall_progress(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_progress = _parse_overall_progress(d.pop("overall_progress", UNSET)) 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..e1c84730 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,23 @@ 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 +50,22 @@ 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..f4111cad 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,27 @@ 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,18 +69,31 @@ 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) user_id = _parse_user_id(d.pop("user_id", UNSET)) @@ -85,6 +103,7 @@ def _parse_user_email(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) user_email = _parse_user_email(d.pop("user_email", UNSET)) 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..51be56ff 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,21 @@ 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,13 +49,29 @@ 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: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) track_progress = _parse_track_progress(d.pop("track_progress", UNSET)) diff --git a/src/splunk_ao/resources/models/annotation_rating_create.py b/src/splunk_ao/resources/models/annotation_rating_create.py index f48877fd..450977ce 100644 --- a/src/splunk_ao/resources/models/annotation_rating_create.py +++ b/src/splunk_ao/resources/models/annotation_rating_create.py @@ -87,6 +87,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_rating( data: object, ) -> ChoiceRating | LikeDislikeRating | ScoreRating | StarRating | TagsRating | TextRating | TreeChoiceRating: + try: if not isinstance(data, dict): raise TypeError() @@ -148,6 +149,7 @@ def _parse_explanation(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) explanation = _parse_explanation(d.pop("explanation", UNSET)) diff --git a/src/splunk_ao/resources/models/annotation_rating_db.py b/src/splunk_ao/resources/models/annotation_rating_db.py index 974772d3..28984a30 100644 --- a/src/splunk_ao/resources/models/annotation_rating_db.py +++ b/src/splunk_ao/resources/models/annotation_rating_db.py @@ -97,6 +97,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_rating( data: object, ) -> ChoiceRating | LikeDislikeRating | ScoreRating | StarRating | TagsRating | TextRating | TreeChoiceRating: + try: if not isinstance(data, dict): raise TypeError() @@ -158,6 +159,7 @@ def _parse_rating( def _parse_created_by(data: object) -> None | str: if data is None: return data + return cast(None | str, data) created_by = _parse_created_by(d.pop("created_by")) @@ -167,6 +169,7 @@ def _parse_explanation(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) explanation = _parse_explanation(d.pop("explanation", UNSET)) diff --git a/src/splunk_ao/resources/models/annotation_rating_info.py b/src/splunk_ao/resources/models/annotation_rating_info.py index 52764f26..9de97292 100644 --- a/src/splunk_ao/resources/models/annotation_rating_info.py +++ b/src/splunk_ao/resources/models/annotation_rating_info.py @@ -15,18 +15,23 @@ 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,9 +52,25 @@ 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: if not isinstance(data, list): raise TypeError() @@ -65,6 +86,7 @@ def _parse_value(data: object) -> bool | int | list[str] | str: def _parse_explanation(data: object) -> None | str: if data is None: return data + return cast(None | str, data) explanation = _parse_explanation(d.pop("explanation")) diff --git a/src/splunk_ao/resources/models/annotation_score_aggregate.py b/src/splunk_ao/resources/models/annotation_score_aggregate.py index 51f370ef..34f2e254 100644 --- a/src/splunk_ao/resources/models/annotation_score_aggregate.py +++ b/src/splunk_ao/resources/models/annotation_score_aggregate.py @@ -32,6 +32,7 @@ class AnnotationScoreAggregate: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + buckets = [] for buckets_item_data in self.buckets: buckets_item = buckets_item_data.to_dict() @@ -58,6 +59,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) buckets = [] _buckets = d.pop("buckets") + for buckets_item_data in _buckets: buckets_item = ScoreBucket.from_dict(buckets_item_data) diff --git a/src/splunk_ao/resources/models/annotation_template_create.py b/src/splunk_ao/resources/models/annotation_template_create.py index 7c408dcc..33881f31 100644 --- a/src/splunk_ao/resources/models/annotation_template_create.py +++ b/src/splunk_ao/resources/models/annotation_template_create.py @@ -114,6 +114,7 @@ def _parse_constraints( | TextConstraints | TreeChoiceConstraints ): + try: if not isinstance(data, dict): raise TypeError() @@ -177,6 +178,7 @@ def _parse_criteria(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) criteria = _parse_criteria(d.pop("criteria", UNSET)) diff --git a/src/splunk_ao/resources/models/annotation_template_db.py b/src/splunk_ao/resources/models/annotation_template_db.py index dec7f94f..42b065cb 100644 --- a/src/splunk_ao/resources/models/annotation_template_db.py +++ b/src/splunk_ao/resources/models/annotation_template_db.py @@ -147,6 +147,7 @@ def _parse_constraints( | TextConstraints | TreeChoiceDBConstraints ): + try: if not isinstance(data, dict): raise TypeError() @@ -210,6 +211,7 @@ def _parse_constraints( def _parse_created_by(data: object) -> None | str: if data is None: return data + return cast(None | str, data) created_by = _parse_created_by(d.pop("created_by")) @@ -223,6 +225,7 @@ def _parse_criteria(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) criteria = _parse_criteria(d.pop("criteria", UNSET)) diff --git a/src/splunk_ao/resources/models/annotation_template_update.py b/src/splunk_ao/resources/models/annotation_template_update.py index ae2e1fb5..b23a246d 100644 --- a/src/splunk_ao/resources/models/annotation_template_update.py +++ b/src/splunk_ao/resources/models/annotation_template_update.py @@ -41,6 +41,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_criteria(data: object) -> None | str: if data is None: return data + return cast(None | str, data) criteria = _parse_criteria(d.pop("criteria")) diff --git a/src/splunk_ao/resources/models/anthropic_integration.py b/src/splunk_ao/resources/models/anthropic_integration.py index 9096bedb..9146c31f 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): @@ -152,6 +156,7 @@ def _parse_multi_modal_config(data: object) -> MultiModalModelIntegrationConfig return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -164,18 +169,30 @@ 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) endpoint = _parse_endpoint(d.pop("endpoint", UNSET)) @@ -185,6 +202,7 @@ def _parse_authentication_scope(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) authentication_scope = _parse_authentication_scope(d.pop("authentication_scope", UNSET)) @@ -194,6 +212,7 @@ def _parse_oauth2_token_url(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) oauth2_token_url = _parse_oauth2_token_url(d.pop("oauth2_token_url", UNSET)) @@ -203,6 +222,7 @@ def _parse_custom_header_mapping(data: object) -> AnthropicIntegrationCustomHead return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -220,6 +240,7 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) id = _parse_id(d.pop("id", UNSET)) @@ -237,6 +258,7 @@ def _parse_extra(data: object) -> AnthropicIntegrationExtraType0 | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/anthropic_integration_create.py b/src/splunk_ao/resources/models/anthropic_integration_create.py index 51c1f40e..81892523 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): @@ -122,6 +126,7 @@ def _parse_multi_modal_config(data: object) -> MultiModalModelIntegrationConfig return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -134,18 +139,30 @@ 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) endpoint = _parse_endpoint(d.pop("endpoint", UNSET)) @@ -155,6 +172,7 @@ def _parse_authentication_scope(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) authentication_scope = _parse_authentication_scope(d.pop("authentication_scope", UNSET)) @@ -164,6 +182,7 @@ def _parse_oauth2_token_url(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) oauth2_token_url = _parse_oauth2_token_url(d.pop("oauth2_token_url", UNSET)) @@ -175,6 +194,7 @@ def _parse_custom_header_mapping( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/available_integrations.py b/src/splunk_ao/resources/models/available_integrations.py index 33f4e7ca..1002a63b 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,23 @@ 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]: + if not isinstance(self.integrations, list): + raise TypeError("Unexpected value type for integrations") + 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] = {} @@ -38,8 +45,26 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) integrations = [] _integrations = d.pop("integrations") + if not isinstance(_integrations, list): + raise TypeError("Unexpected value type for 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..85c0c3d8 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 @@ -119,6 +123,7 @@ def _parse_multi_modal_config(data: object) -> MultiModalModelIntegrationConfig return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -131,12 +136,23 @@ 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) @@ -152,6 +168,7 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) id = _parse_id(d.pop("id", UNSET)) @@ -169,6 +186,7 @@ def _parse_extra(data: object) -> AwsBedrockIntegrationExtraType0 | None | Unset return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() 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..feca4f4b 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,24 @@ 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) @@ -129,6 +145,7 @@ def _parse_multi_modal_config(data: object) -> MultiModalModelIntegrationConfig return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -155,6 +172,7 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) id = _parse_id(d.pop("id", UNSET)) @@ -172,6 +190,7 @@ def _parse_extra(data: object) -> AwsSageMakerIntegrationExtraType0 | None | Uns return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() 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..4dc9f9e5 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 @@ -106,6 +110,7 @@ def _parse_multi_modal_config(data: object) -> MultiModalModelIntegrationConfig return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -127,12 +132,23 @@ 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..580a0029 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): @@ -209,6 +213,7 @@ def _parse_multi_modal_config(data: object) -> MultiModalModelIntegrationConfig return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -230,22 +235,35 @@ def _parse_azure_deployment(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) authentication_scope = _parse_authentication_scope(d.pop("authentication_scope", UNSET)) @@ -255,6 +273,7 @@ def _parse_default_headers(data: object) -> AzureIntegrationDefaultHeadersType0 return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -279,6 +298,7 @@ def _parse_oauth2_token_url(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) oauth2_token_url = _parse_oauth2_token_url(d.pop("oauth2_token_url", UNSET)) @@ -288,6 +308,7 @@ def _parse_custom_header_mapping(data: object) -> AzureIntegrationCustomHeaderMa return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -305,11 +326,13 @@ def _parse_available_deployments(data: object) -> list[AzureModelDeployment] | N return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() available_deployments_type_0 = [] _available_deployments_type_0 = data + for available_deployments_type_0_item_data in _available_deployments_type_0: available_deployments_type_0_item = AzureModelDeployment.from_dict( available_deployments_type_0_item_data @@ -329,6 +352,7 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) id = _parse_id(d.pop("id", UNSET)) @@ -346,6 +370,7 @@ def _parse_extra(data: object) -> AzureIntegrationExtraType0 | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/azure_integration_create.py b/src/splunk_ao/resources/models/azure_integration_create.py index 7166bdba..f99b8ce8 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): @@ -184,6 +188,7 @@ def _parse_multi_modal_config(data: object) -> MultiModalModelIntegrationConfig return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -205,22 +210,35 @@ def _parse_azure_deployment(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) authentication_scope = _parse_authentication_scope(d.pop("authentication_scope", UNSET)) @@ -230,6 +248,7 @@ def _parse_default_headers(data: object) -> AzureIntegrationCreateDefaultHeaders return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -254,6 +273,7 @@ def _parse_oauth2_token_url(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) oauth2_token_url = _parse_oauth2_token_url(d.pop("oauth2_token_url", UNSET)) @@ -263,6 +283,7 @@ def _parse_custom_header_mapping(data: object) -> AzureIntegrationCreateCustomHe return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -280,11 +301,13 @@ def _parse_available_deployments(data: object) -> list[AzureModelDeployment] | N return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() available_deployments_type_0 = [] _available_deployments_type_0 = data + for available_deployments_type_0_item_data in _available_deployments_type_0: available_deployments_type_0_item = AzureModelDeployment.from_dict( available_deployments_type_0_item_data 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..b3b60d8c 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 @@ -89,6 +93,7 @@ def _parse_multi_modal_config(data: object) -> MultiModalModelIntegrationConfig return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -101,12 +106,23 @@ 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 138fd605..e759f8a0 100644 --- a/src/splunk_ao/resources/models/base_finetuned_scorer_db.py +++ b/src/splunk_ao/resources/models/base_finetuned_scorer_db.py @@ -32,11 +32,11 @@ 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 (None | ScorerName | Unset): Executor pipeline. Defaults to finetuned scorer pipeline but can run + executor (None | ScorerName | str | Unset): Executor pipeline. Defaults to finetuned scorer pipeline but can run custom galileo score pipelines. """ @@ -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: None | ScorerName | Unset = UNSET + executor: None | ScorerName | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -148,15 +148,17 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -165,15 +167,18 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -182,7 +187,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)) @@ -193,6 +200,7 @@ def _parse_class_name_to_vocab_ix( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -219,11 +227,12 @@ 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) -> None | ScorerName | Unset: + def _parse_executor(data: object) -> None | ScorerName | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -232,7 +241,9 @@ def _parse_executor(data: object) -> None | ScorerName | Unset: return executor_type_0 except: # noqa: E722 pass - return cast(None | ScorerName | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for executor") + return cast(None | ScorerName | str | Unset, data) executor = _parse_executor(d.pop("executor", UNSET)) diff --git a/src/splunk_ao/resources/models/base_generated_scorer_db.py b/src/splunk_ao/resources/models/base_generated_scorer_db.py index 57004709..4094b878 100644 --- a/src/splunk_ao/resources/models/base_generated_scorer_db.py +++ b/src/splunk_ao/resources/models/base_generated_scorer_db.py @@ -79,6 +79,7 @@ def _parse_instructions(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) instructions = _parse_instructions(d.pop("instructions", UNSET)) @@ -88,6 +89,7 @@ def _parse_user_prompt(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) user_prompt = _parse_user_prompt(d.pop("user_prompt", UNSET)) diff --git a/src/splunk_ao/resources/models/base_luna_3_scorer_db.py b/src/splunk_ao/resources/models/base_luna_3_scorer_db.py index 6b8b72cd..71d6a1e4 100644 --- a/src/splunk_ao/resources/models/base_luna_3_scorer_db.py +++ b/src/splunk_ao/resources/models/base_luna_3_scorer_db.py @@ -81,6 +81,7 @@ def _parse_threshold(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) threshold = _parse_threshold(d.pop("threshold", 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..3612da02 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,27 +17,33 @@ 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 + roll_up_methods (list[CategoricalRollUpMethod | 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 | NumericRollUpMethod | str] additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + if not isinstance(self.roll_up_methods, list): + raise TypeError("Unexpected value type for roll_up_methods") + roll_up_methods: list[str] if isinstance(self.roll_up_methods, list): + if not isinstance(self.roll_up_methods, list): + raise TypeError("Unexpected value type for roll_up_methods_type_0") + 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 + elif isinstance(roll_up_methods_type_0_item_data, CategoricalRollUpMethod): + 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: - roll_up_methods = [] - for roll_up_methods_type_1_item_data in self.roll_up_methods: - roll_up_methods_type_1_item = roll_up_methods_type_1_item_data.value - roll_up_methods.append(roll_up_methods_type_1_item) - field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update({"roll_up_methods": roll_up_methods}) @@ -48,30 +54,48 @@ 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]: - 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) - - roll_up_methods_type_0.append(roll_up_methods_type_0_item) + def _parse_roll_up_methods(data: object) -> list[CategoricalRollUpMethod | NumericRollUpMethod | str]: + if not isinstance(data, list): + raise TypeError("Unexpected value type for roll_up_methods") - return roll_up_methods_type_0 - except: # noqa: E722 - pass if not isinstance(data, list): raise TypeError() - roll_up_methods_type_1 = [] - _roll_up_methods_type_1 = data - for roll_up_methods_type_1_item_data in _roll_up_methods_type_1: - roll_up_methods_type_1_item = CategoricalRollUpMethod(roll_up_methods_type_1_item_data) - - roll_up_methods_type_1.append(roll_up_methods_type_1_item) - - return roll_up_methods_type_1 + roll_up_methods_type_0 = [] + _roll_up_methods_type_0 = data + if not isinstance(_roll_up_methods_type_0, list): + raise TypeError("Unexpected value type for roll_up_methods_type_0") + + for roll_up_methods_type_0_item_data in _roll_up_methods_type_0: + + def _parse_roll_up_methods_type_0_item( + data: object, + ) -> CategoricalRollUpMethod | 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 + try: + if not isinstance(data, str): + raise TypeError() + roll_up_methods_type_0_item_type_1 = CategoricalRollUpMethod(data) + + return roll_up_methods_type_0_item_type_1 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_methods_type_0_item") + return cast(CategoricalRollUpMethod | 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) + + return roll_up_methods_type_0 roll_up_methods = _parse_roll_up_methods(d.pop("roll_up_methods")) diff --git a/src/splunk_ao/resources/models/base_prompt_template_response.py b/src/splunk_ao/resources/models/base_prompt_template_response.py index a4fa1c9f..7dcb8e0b 100644 --- a/src/splunk_ao/resources/models/base_prompt_template_response.py +++ b/src/splunk_ao/resources/models/base_prompt_template_response.py @@ -137,6 +137,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: id = d.pop("id") def _parse_name(data: object) -> Name | str: + try: if not isinstance(data, dict): raise TypeError() @@ -168,6 +169,7 @@ def _parse_name(data: object) -> Name | str: def _parse_created_by_user(data: object) -> None | UserInfo: if data is None: return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/base_prompt_template_version.py b/src/splunk_ao/resources/models/base_prompt_template_version.py index d13a9eb5..ee095783 100644 --- a/src/splunk_ao/resources/models/base_prompt_template_version.py +++ b/src/splunk_ao/resources/models/base_prompt_template_version.py @@ -35,6 +35,7 @@ class BasePromptTemplateVersion: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + template: list[dict[str, Any]] | str if isinstance(self.template, list): template = [] @@ -85,11 +86,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) def _parse_template(data: object) -> list[MessagesListItem] | str: + try: if not isinstance(data, list): raise TypeError() template_type_1 = [] _template_type_1 = data + for componentsschemas_messages_item_data in _template_type_1: componentsschemas_messages_item = MessagesListItem.from_dict(componentsschemas_messages_item_data) @@ -109,6 +112,7 @@ def _parse_version(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) version = _parse_version(d.pop("version", UNSET)) @@ -125,6 +129,7 @@ def _parse_output_type(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/base_prompt_template_version_response.py b/src/splunk_ao/resources/models/base_prompt_template_version_response.py index c0ea1496..9247f47e 100644 --- a/src/splunk_ao/resources/models/base_prompt_template_version_response.py +++ b/src/splunk_ao/resources/models/base_prompt_template_version_response.py @@ -144,11 +144,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) def _parse_template(data: object) -> list[MessagesListItem] | str: + try: if not isinstance(data, list): raise TypeError() template_type_1 = [] _template_type_1 = data + for componentsschemas_messages_item_data in _template_type_1: componentsschemas_messages_item = MessagesListItem.from_dict(componentsschemas_messages_item_data) @@ -180,6 +182,7 @@ def _parse_template(data: object) -> list[MessagesListItem] | str: def _parse_created_by_user(data: object) -> None | UserInfo: if data is None: return data + try: if not isinstance(data, dict): raise TypeError() @@ -199,6 +202,7 @@ def _parse_output_type(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/base_registered_scorer_db.py b/src/splunk_ao/resources/models/base_registered_scorer_db.py index a0043a14..6fe96d98 100644 --- a/src/splunk_ao/resources/models/base_registered_scorer_db.py +++ b/src/splunk_ao/resources/models/base_registered_scorer_db.py @@ -56,6 +56,7 @@ def _parse_score_type(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) score_type = _parse_score_type(d.pop("score_type", UNSET)) diff --git a/src/splunk_ao/resources/models/base_scorer.py b/src/splunk_ao/resources/models/base_scorer.py index 3466c7b0..dbbb7c76 100644 --- a/src/splunk_ao/resources/models/base_scorer.py +++ b/src/splunk_ao/resources/models/base_scorer.py @@ -56,21 +56,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 | 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): """ @@ -96,21 +96,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 | 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) @@ -266,13 +266,27 @@ def to_dict(self) -> dict[str, Any]: else: can_copy_to_llm = self.can_copy_to_llm + if ( + not isinstance(self.scoreable_node_types, list) + and self.scoreable_node_types is not None + and not isinstance(self.scoreable_node_types, Unset) + ): + raise TypeError("Unexpected value type for scoreable_node_types") + scoreable_node_types: list[str] | None | Unset if isinstance(self.scoreable_node_types, Unset): scoreable_node_types = UNSET elif isinstance(self.scoreable_node_types, list): + if not isinstance(self.scoreable_node_types, list): + raise TypeError("Unexpected value type for scoreable_node_types_type_0") + 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: @@ -300,13 +314,27 @@ def to_dict(self) -> dict[str, Any]: else: input_type = self.input_type + if ( + not isinstance(self.multimodal_capabilities, list) + and self.multimodal_capabilities is not None + and not isinstance(self.multimodal_capabilities, Unset) + ): + raise TypeError("Unexpected value type for multimodal_capabilities") + multimodal_capabilities: list[str] | None | Unset if isinstance(self.multimodal_capabilities, Unset): multimodal_capabilities = UNSET elif isinstance(self.multimodal_capabilities, list): + if not isinstance(self.multimodal_capabilities, list): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0") + 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: @@ -340,21 +368,31 @@ def to_dict(self) -> dict[str, Any]: else: roll_up_strategy = self.roll_up_strategy + if ( + not isinstance(self.roll_up_methods, list) + and self.roll_up_methods is not None + and not isinstance(self.roll_up_methods, Unset) + ): + raise TypeError("Unexpected value type for roll_up_methods") + roll_up_methods: list[str] | None | Unset if isinstance(self.roll_up_methods, Unset): roll_up_methods = UNSET elif isinstance(self.roll_up_methods, list): + if not isinstance(self.roll_up_methods, list): + raise TypeError("Unexpected value type for roll_up_methods_type_0") + 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 + elif isinstance(roll_up_methods_type_0_item_data, CategoricalRollUpMethod): + 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): - roll_up_methods = [] - for roll_up_methods_type_1_item_data in self.roll_up_methods: - roll_up_methods_type_1_item = roll_up_methods_type_1_item_data.value - roll_up_methods.append(roll_up_methods_type_1_item) - else: roll_up_methods = self.roll_up_methods @@ -511,6 +549,7 @@ def _parse_scores(data: object) -> list[Any] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -528,6 +567,7 @@ def _parse_indices(data: object) -> list[int] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -545,6 +585,7 @@ def _parse_aggregates(data: object) -> BaseScorerAggregatesType0 | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -562,6 +603,7 @@ def _parse_aggregate_keys(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -579,6 +621,7 @@ def _parse_extra(data: object) -> BaseScorerExtraType0 | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -596,14 +639,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() @@ -642,6 +688,7 @@ def _parse_metric_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metric_name = _parse_metric_name(d.pop("metric_name", UNSET)) @@ -651,6 +698,7 @@ def _parse_description(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) description = _parse_description(d.pop("description", UNSET)) @@ -660,6 +708,7 @@ def _parse_chainpoll_template(data: object) -> ChainPollTemplate | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -677,6 +726,7 @@ def _parse_model_alias(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_alias = _parse_model_alias(d.pop("model_alias", UNSET)) @@ -686,6 +736,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) @@ -695,6 +746,7 @@ def _parse_default_model_alias(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) default_model_alias = _parse_default_model_alias(d.pop("default_model_alias", UNSET)) @@ -704,6 +756,7 @@ def _parse_ground_truth(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) ground_truth = _parse_ground_truth(d.pop("ground_truth", UNSET)) @@ -715,6 +768,7 @@ def _parse_registered_scorer_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) registered_scorer_id = _parse_registered_scorer_id(d.pop("registered_scorer_id", UNSET)) @@ -724,6 +778,7 @@ def _parse_generated_scorer_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) generated_scorer_id = _parse_generated_scorer_id(d.pop("generated_scorer_id", UNSET)) @@ -733,6 +788,7 @@ def _parse_scorer_version_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) scorer_version_id = _parse_scorer_version_id(d.pop("scorer_version_id", UNSET)) @@ -742,6 +798,7 @@ def _parse_user_code(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) user_code = _parse_user_code(d.pop("user_code", UNSET)) @@ -751,29 +808,53 @@ def _parse_can_copy_to_llm(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) 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): return data + if not isinstance(data, list) and data is not None and not isinstance(data, Unset): + raise TypeError("Unexpected value type for scoreable_node_types") + try: if not isinstance(data, list): raise TypeError() scoreable_node_types_type_0 = [] _scoreable_node_types_type_0 = data + if not isinstance(_scoreable_node_types_type_0, list): + raise TypeError("Unexpected value type for scoreable_node_types_type_0") + 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,15 +863,17 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -799,15 +882,18 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -816,29 +902,54 @@ 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): return data + if not isinstance(data, list) and data is not None and not isinstance(data, Unset): + raise TypeError("Unexpected value type for multimodal_capabilities") + try: if not isinstance(data, list): raise TypeError() multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data + if not isinstance(_multimodal_capabilities_type_0, list): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0") + 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)) @@ -849,6 +960,7 @@ def _parse_required_scorers(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -866,6 +978,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -878,11 +991,12 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -891,44 +1005,64 @@ 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 | NumericRollUpMethod | str] | None | Unset: if data is None: return data if isinstance(data, Unset): return data + if not isinstance(data, list) and data is not None and not isinstance(data, Unset): + raise TypeError("Unexpected value type for roll_up_methods") + try: if not isinstance(data, list): raise TypeError() roll_up_methods_type_0 = [] _roll_up_methods_type_0 = data + if not isinstance(_roll_up_methods_type_0, list): + raise TypeError("Unexpected value type for roll_up_methods_type_0") + 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) - roll_up_methods_type_0.append(roll_up_methods_type_0_item) + def _parse_roll_up_methods_type_0_item( + data: object, + ) -> CategoricalRollUpMethod | NumericRollUpMethod | str: - return roll_up_methods_type_0 - except: # noqa: E722 - pass - try: - if not isinstance(data, list): - raise TypeError() - roll_up_methods_type_1 = [] - _roll_up_methods_type_1 = data - for roll_up_methods_type_1_item_data in _roll_up_methods_type_1: - roll_up_methods_type_1_item = CategoricalRollUpMethod(roll_up_methods_type_1_item_data) + 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 + try: + if not isinstance(data, str): + raise TypeError() + roll_up_methods_type_0_item_type_1 = CategoricalRollUpMethod(data) + + return roll_up_methods_type_0_item_type_1 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for roll_up_methods_type_0_item") + return cast(CategoricalRollUpMethod | NumericRollUpMethod | str, data) - roll_up_methods_type_1.append(roll_up_methods_type_1_item) + roll_up_methods_type_0_item = _parse_roll_up_methods_type_0_item(roll_up_methods_type_0_item_data) - return roll_up_methods_type_1 + roll_up_methods_type_0.append(roll_up_methods_type_0_item) + + return roll_up_methods_type_0 except: # noqa: E722 pass - return cast(list[CategoricalRollUpMethod] | list[NumericRollUpMethod] | None | Unset, data) + return cast(list[CategoricalRollUpMethod | NumericRollUpMethod | str] | None | Unset, data) roll_up_methods = _parse_roll_up_methods(d.pop("roll_up_methods", UNSET)) @@ -937,6 +1071,7 @@ def _parse_prompt(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) prompt = _parse_prompt(d.pop("prompt", UNSET)) @@ -946,6 +1081,7 @@ def _parse_lora_task_id(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) lora_task_id = _parse_lora_task_id(d.pop("lora_task_id", UNSET)) @@ -955,15 +1091,17 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -972,15 +1110,18 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -989,7 +1130,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)) @@ -1000,6 +1143,7 @@ def _parse_class_name_to_vocab_ix( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1025,6 +1169,7 @@ def _parse_scorer_path_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) scorer_path_name = _parse_scorer_path_name(d.pop("scorer_path_name", 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 91441624..78a45490 100644 --- a/src/splunk_ao/resources/models/base_scorer_version_db.py +++ b/src/splunk_ao/resources/models/base_scorer_version_db.py @@ -186,6 +186,7 @@ def _parse_generated_scorer(data: object) -> BaseGeneratedScorerDB | None | Unse return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -203,6 +204,7 @@ def _parse_registered_scorer(data: object) -> BaseRegisteredScorerDB | None | Un return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -220,6 +222,7 @@ def _parse_finetuned_scorer(data: object) -> BaseFinetunedScorerDB | None | Unse return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -237,6 +240,7 @@ def _parse_luna3_scorer(data: object) -> BaseLuna3ScorerDB | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -254,6 +258,7 @@ def _parse_decision_scorer(data: object) -> DecisionScorerDB | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -271,6 +276,7 @@ def _parse_model_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", UNSET)) @@ -280,6 +286,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) @@ -289,6 +296,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) @@ -298,6 +306,7 @@ def _parse_runtime(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) runtime = _parse_runtime(d.pop("runtime", UNSET)) @@ -307,6 +316,7 @@ def _parse_code_sha256(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) code_sha256 = _parse_code_sha256(d.pop("code_sha256", 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 575d809a..baaca8a8 100644 --- a/src/splunk_ao/resources/models/base_scorer_version_response.py +++ b/src/splunk_ao/resources/models/base_scorer_version_response.py @@ -45,7 +45,7 @@ class BaseScorerVersionResponse: version saved before digests were recorded. chain_poll_template (ChainPollTemplate | None | Unset): scoreable_node_types (list[str] | None | Unset): - output_type (None | OutputTypeEnum | Unset): + output_type (None | OutputTypeEnum | str | Unset): allowed_model (bool | None | Unset): created_by (None | str | Unset): validation_task_id (None | str | Unset): @@ -69,7 +69,7 @@ class BaseScorerVersionResponse: code_sha256: None | str | Unset = UNSET chain_poll_template: ChainPollTemplate | None | Unset = UNSET scoreable_node_types: list[str] | None | Unset = UNSET - output_type: None | OutputTypeEnum | Unset = UNSET + output_type: None | OutputTypeEnum | str | Unset = UNSET allowed_model: bool | None | Unset = UNSET created_by: None | str | Unset = UNSET validation_task_id: None | str | Unset = UNSET @@ -280,6 +280,7 @@ def _parse_generated_scorer(data: object) -> GeneratedScorerResponse | None | Un return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -297,6 +298,7 @@ def _parse_registered_scorer(data: object) -> CreateUpdateRegisteredScorerRespon return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -314,6 +316,7 @@ def _parse_finetuned_scorer(data: object) -> FineTunedScorerResponse | None | Un return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -331,6 +334,7 @@ def _parse_luna3_scorer(data: object) -> Luna3ScorerResponse | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -348,6 +352,7 @@ def _parse_decision_scorer(data: object) -> DecisionScorerDB | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -365,6 +370,7 @@ def _parse_model_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", UNSET)) @@ -374,6 +380,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) @@ -383,6 +390,7 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) cot_enabled = _parse_cot_enabled(d.pop("cot_enabled", UNSET)) @@ -392,6 +400,7 @@ def _parse_runtime(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) runtime = _parse_runtime(d.pop("runtime", UNSET)) @@ -401,6 +410,7 @@ def _parse_code_sha256(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) code_sha256 = _parse_code_sha256(d.pop("code_sha256", UNSET)) @@ -410,6 +420,7 @@ def _parse_chain_poll_template(data: object) -> ChainPollTemplate | None | Unset return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -427,6 +438,7 @@ def _parse_scoreable_node_types(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -439,11 +451,12 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -452,7 +465,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)) @@ -461,6 +476,7 @@ def _parse_allowed_model(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) allowed_model = _parse_allowed_model(d.pop("allowed_model", UNSET)) @@ -470,6 +486,7 @@ def _parse_created_by(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) created_by = _parse_created_by(d.pop("created_by", UNSET)) @@ -479,6 +496,7 @@ def _parse_validation_task_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) validation_task_id = _parse_validation_task_id(d.pop("validation_task_id", UNSET)) @@ -488,6 +506,7 @@ def _parse_request_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) request_id = _parse_request_id(d.pop("request_id", 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..aad6e73c 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,12 @@ 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 +78,22 @@ 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) @@ -93,6 +113,7 @@ def _parse_unavailable_reason(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) unavailable_reason = _parse_unavailable_reason(d.pop("unavailable_reason", UNSET)) diff --git a/src/splunk_ao/resources/models/body_create_dataset_datasets_post.py b/src/splunk_ao/resources/models/body_create_dataset_datasets_post.py index f09988d1..87da4350 100644 --- a/src/splunk_ao/resources/models/body_create_dataset_datasets_post.py +++ b/src/splunk_ao/resources/models/body_create_dataset_datasets_post.py @@ -186,6 +186,7 @@ def _parse_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) name = _parse_name(d.pop("name", UNSET)) @@ -197,6 +198,7 @@ def _parse_file(data: object) -> File | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, bytes): raise TypeError() @@ -214,6 +216,7 @@ def _parse_copy_from_dataset_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) copy_from_dataset_id = _parse_copy_from_dataset_id(d.pop("copy_from_dataset_id", UNSET)) @@ -223,6 +226,7 @@ def _parse_copy_from_dataset_version_index(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) copy_from_dataset_version_index = _parse_copy_from_dataset_version_index( @@ -234,6 +238,7 @@ def _parse_project_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) project_id = _parse_project_id(d.pop("project_id", UNSET)) @@ -243,6 +248,7 @@ def _parse_column_mapping(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) column_mapping = _parse_column_mapping(d.pop("column_mapping", UNSET)) diff --git a/src/splunk_ao/resources/models/body_login_email_login_post.py b/src/splunk_ao/resources/models/body_login_email_login_post.py index 90f036e1..ad3760fc 100644 --- a/src/splunk_ao/resources/models/body_login_email_login_post.py +++ b/src/splunk_ao/resources/models/body_login_email_login_post.py @@ -82,6 +82,7 @@ def _parse_grant_type(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) grant_type = _parse_grant_type(d.pop("grant_type", UNSET)) @@ -93,6 +94,7 @@ def _parse_client_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) client_id = _parse_client_id(d.pop("client_id", UNSET)) @@ -102,6 +104,7 @@ def _parse_client_secret(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) client_secret = _parse_client_secret(d.pop("client_secret", UNSET)) diff --git a/src/splunk_ao/resources/models/body_validate_code_scorer_dataset_scorers_code_validate_dataset_post.py b/src/splunk_ao/resources/models/body_validate_code_scorer_dataset_scorers_code_validate_dataset_post.py index e005f82f..1f657d0a 100644 --- a/src/splunk_ao/resources/models/body_validate_code_scorer_dataset_scorers_code_validate_dataset_post.py +++ b/src/splunk_ao/resources/models/body_validate_code_scorer_dataset_scorers_code_validate_dataset_post.py @@ -169,6 +169,7 @@ def _parse_dataset_version_index(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) dataset_version_index = _parse_dataset_version_index(d.pop("dataset_version_index", UNSET)) @@ -180,6 +181,7 @@ def _parse_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) starting_token = _parse_starting_token(d.pop("starting_token", UNSET)) @@ -189,6 +191,7 @@ def _parse_required_scorers(data: object) -> list[str] | None | str | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -206,6 +209,7 @@ def _parse_scoreable_node_types(data: object) -> list[str] | None | str | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -223,6 +227,7 @@ def _parse_score_type(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) score_type = _parse_score_type(d.pop("score_type", UNSET)) diff --git a/src/splunk_ao/resources/models/body_validate_code_scorer_log_record_scorers_code_validate_log_record_post.py b/src/splunk_ao/resources/models/body_validate_code_scorer_log_record_scorers_code_validate_log_record_post.py index b516878b..de64e3f7 100644 --- a/src/splunk_ao/resources/models/body_validate_code_scorer_log_record_scorers_code_validate_log_record_post.py +++ b/src/splunk_ao/resources/models/body_validate_code_scorer_log_record_scorers_code_validate_log_record_post.py @@ -192,6 +192,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -201,6 +202,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -212,6 +214,7 @@ def _parse_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) starting_token = _parse_starting_token(d.pop("starting_token", UNSET)) @@ -221,6 +224,7 @@ def _parse_filters(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) filters = _parse_filters(d.pop("filters", UNSET)) @@ -230,6 +234,7 @@ def _parse_sort(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) sort = _parse_sort(d.pop("sort", UNSET)) @@ -239,6 +244,7 @@ def _parse_required_scorers(data: object) -> list[str] | None | str | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -256,6 +262,7 @@ def _parse_scoreable_node_types(data: object) -> list[str] | None | str | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/body_validate_code_scorer_scorers_code_validate_post.py b/src/splunk_ao/resources/models/body_validate_code_scorer_scorers_code_validate_post.py index 44c2f761..bb707745 100644 --- a/src/splunk_ao/resources/models/body_validate_code_scorer_scorers_code_validate_post.py +++ b/src/splunk_ao/resources/models/body_validate_code_scorer_scorers_code_validate_post.py @@ -135,6 +135,7 @@ def _parse_test_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) test_input = _parse_test_input(d.pop("test_input", UNSET)) @@ -144,6 +145,7 @@ def _parse_test_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) test_output = _parse_test_output(d.pop("test_output", UNSET)) @@ -153,6 +155,7 @@ def _parse_required_scorers(data: object) -> list[str] | None | str | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -170,6 +173,7 @@ def _parse_scoreable_node_types(data: object) -> list[str] | None | str | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/boolean_color_constraint.py b/src/splunk_ao/resources/models/boolean_color_constraint.py index 9d3758a0..3aae00f5 100644 --- a/src/splunk_ao/resources/models/boolean_color_constraint.py +++ b/src/splunk_ao/resources/models/boolean_color_constraint.py @@ -24,18 +24,23 @@ 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 +55,22 @@ 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..b5db403b 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]: @@ -88,15 +88,17 @@ def _parse_average(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -105,15 +107,18 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -122,7 +127,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..a57a7bed 100644 --- a/src/splunk_ao/resources/models/categorical_color_constraint.py +++ b/src/splunk_ao/resources/models/categorical_color_constraint.py @@ -27,20 +27,29 @@ 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 - operator = self.operator.value + color: str + if isinstance(self.color, MetricColor): + color = self.color.value + else: + color = self.color + + 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,11 +67,41 @@ 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: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/chain_poll_template.py b/src/splunk_ao/resources/models/chain_poll_template.py index 79317f0c..0133a37e 100644 --- a/src/splunk_ao/resources/models/chain_poll_template.py +++ b/src/splunk_ao/resources/models/chain_poll_template.py @@ -109,6 +109,7 @@ def _parse_metric_system_prompt(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metric_system_prompt = _parse_metric_system_prompt(d.pop("metric_system_prompt", UNSET)) @@ -118,6 +119,7 @@ def _parse_metric_description(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metric_description = _parse_metric_description(d.pop("metric_description", UNSET)) @@ -140,6 +142,7 @@ def _parse_response_schema(data: object) -> ChainPollTemplateResponseSchemaType0 return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() 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..b1134069 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,13 +65,28 @@ 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) generated_code = _parse_generated_code(d.pop("generated_code", UNSET)) @@ -77,6 +96,7 @@ def _parse_error_message(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) error_message = _parse_error_message(d.pop("error_message", UNSET)) diff --git a/src/splunk_ao/resources/models/collaborator_role_info.py b/src/splunk_ao/resources/models/collaborator_role_info.py index 8ad9c23c..1d13e906 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,23 @@ 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 +46,22 @@ 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..d8af2f09 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,19 @@ 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 +38,22 @@ 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 a0a50cef..73c1df75 100644 --- a/src/splunk_ao/resources/models/column_info.py +++ b/src/splunk_ao/resources/models/column_info.py @@ -24,19 +24,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'). @@ -46,18 +46,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 @@ -69,7 +69,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): @@ -122,9 +126,16 @@ def to_dict(self) -> dict[str, Any]: applicable_types: list[str] | Unset = UNSET if not isinstance(self.applicable_types, Unset): + if not isinstance(self.applicable_types, list): + raise TypeError("Unexpected value type for applicable_types") + 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 @@ -190,11 +201,26 @@ 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) + + 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: + def _parse_data_type(data: object) -> DataType | None | str: if data is None: return data + try: if not isinstance(data, str): raise TypeError() @@ -203,7 +229,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")) @@ -212,6 +240,7 @@ def _parse_label(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) label = _parse_label(d.pop("label", UNSET)) @@ -221,6 +250,7 @@ def _parse_description(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) description = _parse_description(d.pop("description", UNSET)) @@ -230,15 +260,17 @@ def _parse_group_label(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -247,7 +279,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)) @@ -258,6 +292,7 @@ def _parse_allowed_values(data: object) -> list[Any] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -277,11 +312,29 @@ 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: + if not isinstance(_applicable_types, list): + raise TypeError("Unexpected value type for applicable_types") + 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) @@ -292,6 +345,7 @@ def _parse_roll_up_method(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) roll_up_method = _parse_roll_up_method(d.pop("roll_up_method", UNSET)) @@ -301,6 +355,7 @@ def _parse_metric_key_alias(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metric_key_alias = _parse_metric_key_alias(d.pop("metric_key_alias", UNSET)) @@ -310,6 +365,7 @@ def _parse_threshold(data: object) -> MetricThreshold | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/column_mapping.py b/src/splunk_ao/resources/models/column_mapping.py index 80815a41..31b3115d 100644 --- a/src/splunk_ao/resources/models/column_mapping.py +++ b/src/splunk_ao/resources/models/column_mapping.py @@ -118,6 +118,7 @@ def _parse_input_(data: object) -> ColumnMappingConfig | list[str] | None | Unse return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -143,6 +144,7 @@ def _parse_output(data: object) -> ColumnMappingConfig | list[str] | None | Unse return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -168,6 +170,7 @@ def _parse_generated_output(data: object) -> ColumnMappingConfig | list[str] | N return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -193,6 +196,7 @@ def _parse_metadata(data: object) -> ColumnMappingConfig | list[str] | None | Un return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -218,6 +222,7 @@ def _parse_mgt(data: object) -> ColumnMappingMgtType0 | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/completeness_scorer.py b/src/splunk_ao/resources/models/completeness_scorer.py index fcbcd1ab..6737bbcf 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): @@ -110,14 +114,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() @@ -151,18 +158,30 @@ 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", UNSET)) @@ -172,6 +191,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) 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..1a90ea2e 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,40 @@ 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): + if not isinstance(self.scoreable_node_types, list): + raise TypeError("Unexpected value type for scoreable_node_types") + 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 +79,46 @@ 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: + if not isinstance(_scoreable_node_types, list): + raise TypeError("Unexpected value type for scoreable_node_types") + 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/compute_health_score_request_mgt_overlay.py b/src/splunk_ao/resources/models/compute_health_score_request_mgt_overlay.py index a6ce0c23..227af9e4 100644 --- a/src/splunk_ao/resources/models/compute_health_score_request_mgt_overlay.py +++ b/src/splunk_ao/resources/models/compute_health_score_request_mgt_overlay.py @@ -34,6 +34,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_additional_property(data: object) -> None | str: if data is None: return data + return cast(None | str, data) additional_property = _parse_additional_property(prop_dict) diff --git a/src/splunk_ao/resources/models/context_adherence_scorer.py b/src/splunk_ao/resources/models/context_adherence_scorer.py index 88c7e881..546fe8e3 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): @@ -110,14 +114,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() @@ -151,18 +158,30 @@ 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", UNSET)) @@ -172,6 +191,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) diff --git a/src/splunk_ao/resources/models/context_relevance_scorer.py b/src/splunk_ao/resources/models/context_relevance_scorer.py index cfbbcae2..d0413737 100644 --- a/src/splunk_ao/resources/models/context_relevance_scorer.py +++ b/src/splunk_ao/resources/models/context_relevance_scorer.py @@ -81,14 +81,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/control_result.py b/src/splunk_ao/resources/models/control_result.py index 66b482fd..46962176 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,19 @@ 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 +65,22 @@ 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") @@ -69,6 +89,7 @@ def _parse_confidence(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) confidence = _parse_confidence(d.pop("confidence", UNSET)) @@ -78,6 +99,7 @@ def _parse_error_message(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) error_message = _parse_error_message(d.pop("error_message", UNSET)) diff --git a/src/splunk_ao/resources/models/control_span.py b/src/splunk_ao/resources/models/control_span.py index 1100fe98..439cd33e 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) @@ -350,11 +350,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | list[Message] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: input_type_1_item = Message.from_dict(input_type_1_item_data) @@ -368,9 +370,11 @@ def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | lis raise TypeError() input_type_2 = [] _input_type_2 = data + for input_type_2_item_data in _input_type_2: def _parse_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -403,11 +407,13 @@ def _parse_redacted_input( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: redacted_input_type_1_item = Message.from_dict(redacted_input_type_1_item_data) @@ -421,9 +427,11 @@ def _parse_redacted_input( raise TypeError() redacted_input_type_2 = [] _redacted_input_type_2 = data + for redacted_input_type_2_item_data in _redacted_input_type_2: def _parse_redacted_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -454,6 +462,7 @@ def _parse_output(data: object) -> ControlResult | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -471,6 +480,7 @@ def _parse_redacted_output(data: object) -> ControlResult | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -506,6 +516,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -522,6 +533,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -531,6 +543,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -540,6 +553,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -556,6 +570,7 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) id = _parse_id(d.pop("id", UNSET)) @@ -565,6 +580,7 @@ def _parse_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_id = _parse_session_id(d.pop("session_id", UNSET)) @@ -574,6 +590,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -583,6 +600,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) @@ -592,6 +610,7 @@ def _parse_parent_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) parent_id = _parse_parent_id(d.pop("parent_id", UNSET)) @@ -601,6 +620,7 @@ def _parse_control_id(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) control_id = _parse_control_id(d.pop("control_id", UNSET)) @@ -610,15 +630,17 @@ def _parse_agent_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -627,15 +649,18 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -644,7 +669,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)) @@ -653,6 +680,7 @@ def _parse_evaluator_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) evaluator_name = _parse_evaluator_name(d.pop("evaluator_name", UNSET)) @@ -662,6 +690,7 @@ def _parse_selector_path(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) selector_path = _parse_selector_path(d.pop("selector_path", UNSET)) diff --git a/src/splunk_ao/resources/models/correctness_scorer.py b/src/splunk_ao/resources/models/correctness_scorer.py index eb030ef3..9859fea5 100644 --- a/src/splunk_ao/resources/models/correctness_scorer.py +++ b/src/splunk_ao/resources/models/correctness_scorer.py @@ -107,14 +107,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() @@ -157,6 +160,7 @@ def _parse_model_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", UNSET)) @@ -166,6 +170,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) diff --git a/src/splunk_ao/resources/models/create_annotation_queue_request.py b/src/splunk_ao/resources/models/create_annotation_queue_request.py index 25a1d9a5..d581409e 100644 --- a/src/splunk_ao/resources/models/create_annotation_queue_request.py +++ b/src/splunk_ao/resources/models/create_annotation_queue_request.py @@ -75,6 +75,7 @@ def _parse_description(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) description = _parse_description(d.pop("description", UNSET)) @@ -86,6 +87,7 @@ def _parse_copy_templates_from_queue_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) copy_templates_from_queue_id = _parse_copy_templates_from_queue_id(d.pop("copy_templates_from_queue_id", 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..450805d7 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) @@ -76,15 +76,17 @@ def _parse_node_type(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -93,7 +95,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)) @@ -102,6 +106,7 @@ def _parse_model_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", 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..a78f6860 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,21 @@ 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 b8bea76a..66f34a64 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 (None | ScorerName | Unset): Executor pipeline. Defaults to finetuned scorer pipeline but can run + executor (None | ScorerName | str | 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): + 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: None | ScorerName | Unset = UNSET - luna_input_type: LunaInputTypeEnum | None | Unset = UNSET - luna_output_type: LunaOutputTypeEnum | None | Unset = UNSET + executor: None | ScorerName | 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]: @@ -96,15 +96,17 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) lora_weights_path = _parse_lora_weights_path(d.pop("lora_weights_path", UNSET)) - def _parse_executor(data: object) -> None | ScorerName | Unset: + def _parse_executor(data: object) -> None | ScorerName | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -113,15 +115,18 @@ def _parse_executor(data: object) -> None | ScorerName | Unset: return executor_type_0 except: # noqa: E722 pass - return cast(None | ScorerName | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for executor") + return cast(None | ScorerName | 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -130,15 +135,18 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -147,7 +155,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 ede2656e..5ae54637 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 @@ -33,8 +33,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 (DecisionBooleanCriteria | list[DecisionChoice] | list[DecisionLevel] | list[str] | None | Unset): """ @@ -44,8 +44,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: DecisionBooleanCriteria | list[DecisionChoice] | list[DecisionLevel] | list[str] | None | Unset = ( UNSET ) @@ -152,6 +152,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) @@ -161,6 +162,7 @@ def _parse_scoreable_node_types(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -178,15 +180,17 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -195,15 +199,18 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -212,7 +219,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)) @@ -223,6 +232,7 @@ def _parse_answer_options( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -236,6 +246,7 @@ def _parse_answer_options( raise TypeError() answer_options_type_1 = [] _answer_options_type_1 = data + for answer_options_type_1_item_data in _answer_options_type_1: answer_options_type_1_item = DecisionChoice.from_dict(answer_options_type_1_item_data) @@ -249,6 +260,7 @@ def _parse_answer_options( raise TypeError() answer_options_type_2 = [] _answer_options_type_2 = data + for answer_options_type_2_item_data in _answer_options_type_2: answer_options_type_2_item = DecisionLevel.from_dict(answer_options_type_2_item_data) diff --git a/src/splunk_ao/resources/models/create_job_request.py b/src/splunk_ao/resources/models/create_job_request.py index 571297c0..0a85ae60 100644 --- a/src/splunk_ao/resources/models/create_job_request.py +++ b/src/splunk_ao/resources/models/create_job_request.py @@ -51,7 +51,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): @@ -93,7 +93,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 @@ -543,6 +543,7 @@ def _parse_resource_limits(data: object) -> None | TaskResourceLimits | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -560,6 +561,7 @@ def _parse_job_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) job_id = _parse_job_id(d.pop("job_id", UNSET)) @@ -573,15 +575,17 @@ def _parse_user_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, int): raise TypeError() @@ -590,18 +594,22 @@ 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)) def _parse_labels(data: object) -> list[list[str]] | list[str] | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() labels_type_0 = [] _labels_type_0 = data + for labels_type_0_item_data in _labels_type_0: labels_type_0_item = cast(list[str], labels_type_0_item_data) @@ -623,6 +631,7 @@ def _parse_ner_labels(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -640,6 +649,7 @@ def _parse_tasks(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -659,6 +669,7 @@ def _parse_migration_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) migration_name = _parse_migration_name(d.pop("migration_name", UNSET)) @@ -670,6 +681,7 @@ def _parse_feature_names(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -687,6 +699,7 @@ def _parse_prompt_dataset_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) prompt_dataset_id = _parse_prompt_dataset_id(d.pop("prompt_dataset_id", UNSET)) @@ -696,6 +709,7 @@ def _parse_dataset_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_id = _parse_dataset_id(d.pop("dataset_id", UNSET)) @@ -705,6 +719,7 @@ def _parse_dataset_version_index(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) dataset_version_index = _parse_dataset_version_index(d.pop("dataset_version_index", UNSET)) @@ -714,6 +729,7 @@ def _parse_prompt_template_version_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) prompt_template_version_id = _parse_prompt_template_version_id(d.pop("prompt_template_version_id", UNSET)) @@ -723,6 +739,7 @@ def _parse_monitor_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) monitor_batch_id = _parse_monitor_batch_id(d.pop("monitor_batch_id", UNSET)) @@ -732,6 +749,7 @@ def _parse_protect_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) protect_trace_id = _parse_protect_trace_id(d.pop("protect_trace_id", UNSET)) @@ -741,6 +759,7 @@ def _parse_protect_scorer_payload(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) protect_scorer_payload = _parse_protect_scorer_payload(d.pop("protect_scorer_payload", UNSET)) @@ -750,6 +769,7 @@ def _parse_prompt_settings(data: object) -> None | PromptRunSettings | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -794,11 +814,13 @@ def _parse_scorers( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() scorers_type_0 = [] _scorers_type_0 = data + for scorers_type_0_item_data in _scorers_type_0: scorers_type_0_item = RuntimeScorerConfig.from_dict(scorers_type_0_item_data) @@ -812,6 +834,7 @@ def _parse_scorers( raise TypeError() scorers_type_1 = [] _scorers_type_1 = data + for scorers_type_1_item_data in _scorers_type_1: def _parse_scorers_type_1_item( @@ -837,6 +860,7 @@ def _parse_scorers_type_1_item( | ToolErrorRateScorer | ToolSelectionQualityScorer ): + try: if not isinstance(data, dict): raise TypeError() @@ -1029,6 +1053,7 @@ def _parse_prompt_generated_scorers_configuration(data: object) -> list[str] | N return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -1048,6 +1073,7 @@ def _parse_prompt_scorer_settings(data: object) -> BaseScorer | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1065,6 +1091,7 @@ def _parse_scorer_config(data: object) -> None | RuntimeScorerConfig | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1082,6 +1109,7 @@ def _parse_luna_model(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) luna_model = _parse_luna_model(d.pop("luna_model", UNSET)) @@ -1091,11 +1119,13 @@ def _parse_segment_filters(data: object) -> list[SegmentFilter] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() segment_filters_type_0 = [] _segment_filters_type_0 = data + for segment_filters_type_0_item_data in _segment_filters_type_0: segment_filters_type_0_item = SegmentFilter.from_dict(segment_filters_type_0_item_data) @@ -1113,6 +1143,7 @@ def _parse_is_session(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) is_session = _parse_is_session(d.pop("is_session", UNSET)) @@ -1122,6 +1153,7 @@ def _parse_validation_config(data: object) -> CreateJobRequestValidationConfigTy return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/create_job_response.py b/src/splunk_ao/resources/models/create_job_response.py index b7be79d4..5551dda9 100644 --- a/src/splunk_ao/resources/models/create_job_response.py +++ b/src/splunk_ao/resources/models/create_job_response.py @@ -53,7 +53,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): @@ -97,7 +97,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 @@ -555,6 +555,7 @@ def _parse_resource_limits(data: object) -> None | TaskResourceLimits | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -572,6 +573,7 @@ def _parse_job_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) job_id = _parse_job_id(d.pop("job_id", UNSET)) @@ -585,15 +587,17 @@ def _parse_user_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, int): raise TypeError() @@ -602,18 +606,22 @@ 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)) def _parse_labels(data: object) -> list[list[str]] | list[str] | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() labels_type_0 = [] _labels_type_0 = data + for labels_type_0_item_data in _labels_type_0: labels_type_0_item = cast(list[str], labels_type_0_item_data) @@ -635,6 +643,7 @@ def _parse_ner_labels(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -652,6 +661,7 @@ def _parse_tasks(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -671,6 +681,7 @@ def _parse_migration_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) migration_name = _parse_migration_name(d.pop("migration_name", UNSET)) @@ -682,6 +693,7 @@ def _parse_feature_names(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -699,6 +711,7 @@ def _parse_prompt_dataset_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) prompt_dataset_id = _parse_prompt_dataset_id(d.pop("prompt_dataset_id", UNSET)) @@ -708,6 +721,7 @@ def _parse_dataset_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_id = _parse_dataset_id(d.pop("dataset_id", UNSET)) @@ -717,6 +731,7 @@ def _parse_dataset_version_index(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) dataset_version_index = _parse_dataset_version_index(d.pop("dataset_version_index", UNSET)) @@ -726,6 +741,7 @@ def _parse_prompt_template_version_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) prompt_template_version_id = _parse_prompt_template_version_id(d.pop("prompt_template_version_id", UNSET)) @@ -735,6 +751,7 @@ def _parse_monitor_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) monitor_batch_id = _parse_monitor_batch_id(d.pop("monitor_batch_id", UNSET)) @@ -744,6 +761,7 @@ def _parse_protect_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) protect_trace_id = _parse_protect_trace_id(d.pop("protect_trace_id", UNSET)) @@ -753,6 +771,7 @@ def _parse_protect_scorer_payload(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) protect_scorer_payload = _parse_protect_scorer_payload(d.pop("protect_scorer_payload", UNSET)) @@ -762,6 +781,7 @@ def _parse_prompt_settings(data: object) -> None | PromptRunSettings | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -806,11 +826,13 @@ def _parse_scorers( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() scorers_type_0 = [] _scorers_type_0 = data + for scorers_type_0_item_data in _scorers_type_0: scorers_type_0_item = RuntimeScorerConfig.from_dict(scorers_type_0_item_data) @@ -824,6 +846,7 @@ def _parse_scorers( raise TypeError() scorers_type_1 = [] _scorers_type_1 = data + for scorers_type_1_item_data in _scorers_type_1: def _parse_scorers_type_1_item( @@ -849,6 +872,7 @@ def _parse_scorers_type_1_item( | ToolErrorRateScorer | ToolSelectionQualityScorer ): + try: if not isinstance(data, dict): raise TypeError() @@ -1041,6 +1065,7 @@ def _parse_prompt_generated_scorers_configuration(data: object) -> list[str] | N return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -1060,6 +1085,7 @@ def _parse_prompt_scorer_settings(data: object) -> BaseScorer | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1077,6 +1103,7 @@ def _parse_scorer_config(data: object) -> None | RuntimeScorerConfig | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1094,6 +1121,7 @@ def _parse_luna_model(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) luna_model = _parse_luna_model(d.pop("luna_model", UNSET)) @@ -1103,11 +1131,13 @@ def _parse_segment_filters(data: object) -> list[SegmentFilter] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() segment_filters_type_0 = [] _segment_filters_type_0 = data + for segment_filters_type_0_item_data in _segment_filters_type_0: segment_filters_type_0_item = SegmentFilter.from_dict(segment_filters_type_0_item_data) @@ -1125,6 +1155,7 @@ def _parse_is_session(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) is_session = _parse_is_session(d.pop("is_session", UNSET)) @@ -1134,6 +1165,7 @@ def _parse_validation_config(data: object) -> CreateJobResponseValidationConfigT return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() 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..ac6e2274 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,21 @@ 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..40471cd9 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 @@ -144,6 +144,7 @@ def _parse_model_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", UNSET)) @@ -153,6 +154,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) @@ -162,6 +164,7 @@ def _parse_scoreable_node_types(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -179,15 +182,17 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -196,15 +201,18 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -213,7 +221,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)) @@ -222,6 +232,7 @@ def _parse_instructions(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) instructions = _parse_instructions(d.pop("instructions", UNSET)) @@ -231,6 +242,7 @@ def _parse_chain_poll_template(data: object) -> ChainPollTemplate | None | Unset return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -248,6 +260,7 @@ def _parse_user_prompt(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) user_prompt = _parse_user_prompt(d.pop("user_prompt", UNSET)) diff --git a/src/splunk_ao/resources/models/create_luna_3_scorer_version_request.py b/src/splunk_ao/resources/models/create_luna_3_scorer_version_request.py index bf706d3a..83ff76e3 100644 --- a/src/splunk_ao/resources/models/create_luna_3_scorer_version_request.py +++ b/src/splunk_ao/resources/models/create_luna_3_scorer_version_request.py @@ -77,6 +77,7 @@ def _parse_threshold(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) threshold = _parse_threshold(d.pop("threshold", UNSET)) diff --git a/src/splunk_ao/resources/models/create_prompt_template_with_version_request_body.py b/src/splunk_ao/resources/models/create_prompt_template_with_version_request_body.py index cf837df3..52d3bac4 100644 --- a/src/splunk_ao/resources/models/create_prompt_template_with_version_request_body.py +++ b/src/splunk_ao/resources/models/create_prompt_template_with_version_request_body.py @@ -106,11 +106,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) def _parse_template(data: object) -> list[MessagesListItem] | str: + try: if not isinstance(data, list): raise TypeError() template_type_1 = [] _template_type_1 = data + for componentsschemas_messages_item_data in _template_type_1: componentsschemas_messages_item = MessagesListItem.from_dict(componentsschemas_messages_item_data) @@ -124,6 +126,7 @@ def _parse_template(data: object) -> list[MessagesListItem] | str: template = _parse_template(d.pop("template")) def _parse_name(data: object) -> Name | str: + try: if not isinstance(data, dict): raise TypeError() @@ -143,6 +146,7 @@ def _parse_version(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) version = _parse_version(d.pop("version", UNSET)) @@ -159,6 +163,7 @@ def _parse_output_type(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) output_type = _parse_output_type(d.pop("output_type", UNSET)) diff --git a/src/splunk_ao/resources/models/create_queue_template_request.py b/src/splunk_ao/resources/models/create_queue_template_request.py index 4047ef6d..9c1db53a 100644 --- a/src/splunk_ao/resources/models/create_queue_template_request.py +++ b/src/splunk_ao/resources/models/create_queue_template_request.py @@ -72,6 +72,7 @@ def _parse_template(data: object) -> AnnotationTemplateCreate | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -89,6 +90,7 @@ def _parse_copy_from_queue_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) copy_from_queue_id = _parse_copy_from_queue_id(d.pop("copy_from_queue_id", UNSET)) diff --git a/src/splunk_ao/resources/models/create_scorer_request.py b/src/splunk_ao/resources/models/create_scorer_request.py index f4993d14..b3c74efc 100644 --- a/src/splunk_ao/resources/models/create_scorer_request.py +++ b/src/splunk_ao/resources/models/create_scorer_request.py @@ -31,7 +31,7 @@ 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: ''. @@ -39,17 +39,17 @@ class CreateScorerRequest: defaults (None | ScorerDefaults | Unset): invocation (None | ScorerInvocationConfig | 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): @@ -57,7 +57,7 @@ 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 = "" @@ -65,17 +65,17 @@ class CreateScorerRequest: defaults: None | ScorerDefaults | Unset = UNSET invocation: None | ScorerInvocationConfig | 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 @@ -98,7 +98,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): @@ -195,13 +199,27 @@ def to_dict(self) -> dict[str, Any]: else: input_type = self.input_type + if ( + not isinstance(self.multimodal_capabilities, list) + and self.multimodal_capabilities is not None + and not isinstance(self.multimodal_capabilities, Unset) + ): + raise TypeError("Unexpected value type for multimodal_capabilities") + multimodal_capabilities: list[str] | None | Unset if isinstance(self.multimodal_capabilities, Unset): multimodal_capabilities = UNSET elif isinstance(self.multimodal_capabilities, list): + if not isinstance(self.multimodal_capabilities, list): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0") + 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: @@ -317,13 +335,28 @@ 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) id = _parse_id(d.pop("id", UNSET)) @@ -333,6 +366,7 @@ def _parse_label(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) label = _parse_label(d.pop("label", UNSET)) @@ -342,6 +376,7 @@ def _parse_description(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) description = _parse_description(d.pop("description", UNSET)) @@ -353,6 +388,7 @@ def _parse_defaults(data: object) -> None | ScorerDefaults | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -370,6 +406,7 @@ def _parse_invocation(data: object) -> None | ScorerInvocationConfig | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -387,15 +424,17 @@ def _parse_deprecated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -404,7 +443,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)) @@ -413,6 +454,7 @@ def _parse_ground_truth(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) ground_truth = _parse_ground_truth(d.pop("ground_truth", UNSET)) @@ -422,6 +464,7 @@ def _parse_default_version_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) default_version_id = _parse_default_version_id(d.pop("default_version_id", UNSET)) @@ -431,6 +474,7 @@ def _parse_user_prompt(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) user_prompt = _parse_user_prompt(d.pop("user_prompt", UNSET)) @@ -440,6 +484,7 @@ def _parse_scoreable_node_types(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -452,11 +497,12 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -465,15 +511,18 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -482,29 +531,54 @@ 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): return data + if not isinstance(data, list) and data is not None and not isinstance(data, Unset): + raise TypeError("Unexpected value type for multimodal_capabilities") + try: if not isinstance(data, list): raise TypeError() multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data + if not isinstance(_multimodal_capabilities_type_0, list): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0") + 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)) @@ -513,6 +587,7 @@ def _parse_required_scorers(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -530,6 +605,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -542,11 +618,12 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -555,7 +632,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)) @@ -573,6 +652,7 @@ def _parse_metric_color_picker_config( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -622,6 +702,7 @@ def _parse_is_global(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) is_global = _parse_is_global(d.pop("is_global", 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..c97acb80 100644 --- a/src/splunk_ao/resources/models/create_scorer_version_request.py +++ b/src/splunk_ao/resources/models/create_scorer_version_request.py @@ -21,19 +21,20 @@ 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]: + model_name: None | str | Unset if isinstance(self.model_name, Unset): model_name = UNSET @@ -104,6 +105,7 @@ def _parse_model_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", UNSET)) @@ -113,6 +115,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) @@ -122,6 +125,7 @@ def _parse_scoreable_node_types(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -139,15 +143,17 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -156,15 +162,18 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -173,7 +182,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..f0681887 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) @@ -90,6 +90,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_score_type(data: object) -> None | str: if data is None: return data + return cast(None | str, data) score_type = _parse_score_type(d.pop("score_type")) @@ -100,9 +101,10 @@ 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: if not isinstance(data, str): raise TypeError() @@ -111,13 +113,16 @@ 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")) def _parse_scoreable_node_types(data: object) -> list[str] | None: if data is None: return data + try: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/custom_llm_config.py b/src/splunk_ao/resources/models/custom_llm_config.py index af27789e..7b3a4300 100644 --- a/src/splunk_ao/resources/models/custom_llm_config.py +++ b/src/splunk_ao/resources/models/custom_llm_config.py @@ -71,6 +71,7 @@ def _parse_init_kwargs(data: object) -> CustomLLMConfigInitKwargsType0 | None | return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/databricks_integration.py b/src/splunk_ao/resources/models/databricks_integration.py index 05ed4c7c..153c719b 100644 --- a/src/splunk_ao/resources/models/databricks_integration.py +++ b/src/splunk_ao/resources/models/databricks_integration.py @@ -77,6 +77,7 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) id = _parse_id(d.pop("id", UNSET)) @@ -94,6 +95,7 @@ def _parse_extra(data: object) -> DatabricksIntegrationExtraType0 | None | Unset return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/databricks_integration_create.py b/src/splunk_ao/resources/models/databricks_integration_create.py index 96450e68..5e0b2d64 100644 --- a/src/splunk_ao/resources/models/databricks_integration_create.py +++ b/src/splunk_ao/resources/models/databricks_integration_create.py @@ -78,6 +78,7 @@ def _parse_default_catalog_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) default_catalog_name = _parse_default_catalog_name(d.pop("default_catalog_name", UNSET)) @@ -87,6 +88,7 @@ def _parse_path(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) path = _parse_path(d.pop("path", UNSET)) diff --git a/src/splunk_ao/resources/models/dataset_append_row.py b/src/splunk_ao/resources/models/dataset_append_row.py index c093daad..01eebba5 100644 --- a/src/splunk_ao/resources/models/dataset_append_row.py +++ b/src/splunk_ao/resources/models/dataset_append_row.py @@ -66,6 +66,7 @@ def _parse_row_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) row_id = _parse_row_id(d.pop("row_id", UNSET)) diff --git a/src/splunk_ao/resources/models/dataset_append_row_values.py b/src/splunk_ao/resources/models/dataset_append_row_values.py index 5d2b705f..c9475dbf 100644 --- a/src/splunk_ao/resources/models/dataset_append_row_values.py +++ b/src/splunk_ao/resources/models/dataset_append_row_values.py @@ -54,6 +54,7 @@ def _parse_additional_property( ) -> DatasetAppendRowValuesAdditionalPropertyType3 | float | int | None | str: if data is None: return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/dataset_append_row_values_additional_property_type_3.py b/src/splunk_ao/resources/models/dataset_append_row_values_additional_property_type_3.py index fea93a64..63ae2465 100644 --- a/src/splunk_ao/resources/models/dataset_append_row_values_additional_property_type_3.py +++ b/src/splunk_ao/resources/models/dataset_append_row_values_additional_property_type_3.py @@ -34,6 +34,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_additional_property(data: object) -> float | int | None | str: if data is None: return data + return cast(float | int | None | str, data) additional_property = _parse_additional_property(prop_dict) diff --git a/src/splunk_ao/resources/models/dataset_content.py b/src/splunk_ao/resources/models/dataset_content.py index 3791b39b..e6692654 100644 --- a/src/splunk_ao/resources/models/dataset_content.py +++ b/src/splunk_ao/resources/models/dataset_content.py @@ -103,6 +103,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) @@ -114,6 +115,7 @@ def _parse_warning_message(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) warning_message = _parse_warning_message(d.pop("warning_message", 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..b3b81065 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,23 @@ 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_copy_record_data.py b/src/splunk_ao/resources/models/dataset_copy_record_data.py index 4f9dc69e..2bc07104 100644 --- a/src/splunk_ao/resources/models/dataset_copy_record_data.py +++ b/src/splunk_ao/resources/models/dataset_copy_record_data.py @@ -85,6 +85,7 @@ def _parse_project_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) project_id = _parse_project_id(d.pop("project_id", UNSET)) @@ -94,6 +95,7 @@ def _parse_queue_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) queue_id = _parse_queue_id(d.pop("queue_id", UNSET)) diff --git a/src/splunk_ao/resources/models/dataset_data.py b/src/splunk_ao/resources/models/dataset_data.py index 5e52fe92..e81cc05f 100644 --- a/src/splunk_ao/resources/models/dataset_data.py +++ b/src/splunk_ao/resources/models/dataset_data.py @@ -50,6 +50,7 @@ def _parse_dataset_version_index(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) dataset_version_index = _parse_dataset_version_index(d.pop("dataset_version_index", UNSET)) diff --git a/src/splunk_ao/resources/models/dataset_db.py b/src/splunk_ao/resources/models/dataset_db.py index ce747154..0e27d988 100644 --- a/src/splunk_ao/resources/models/dataset_db.py +++ b/src/splunk_ao/resources/models/dataset_db.py @@ -127,6 +127,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_num_rows(data: object) -> int | None: if data is None: return data + return cast(int | None, data) num_rows = _parse_num_rows(d.pop("num_rows")) @@ -134,6 +135,7 @@ def _parse_num_rows(data: object) -> int | None: def _parse_column_names(data: object) -> list[str] | None: if data is None: return data + try: if not isinstance(data, list): raise TypeError() @@ -149,6 +151,7 @@ def _parse_column_names(data: object) -> list[str] | None: def _parse_created_by_user(data: object) -> None | UserInfo: if data is None: return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/dataset_draft_filter.py b/src/splunk_ao/resources/models/dataset_draft_filter.py index 9af0d1fa..91aaf596 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,23 @@ 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..13bfeb4b 100644 --- a/src/splunk_ao/resources/models/dataset_id_filter.py +++ b/src/splunk_ao/resources/models/dataset_id_filter.py @@ -18,15 +18,16 @@ 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]: + value: list[str] | str if isinstance(self.value, list): value = [] @@ -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, DatasetIDFilterOperator): operator = self.operator.value + else: + operator = self.operator field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -59,14 +64,17 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) def _parse_value(data: object) -> list[str] | str: + try: if not isinstance(data, list): raise TypeError() value_type_1 = [] _value_type_1 = data + for value_type_1_item_data in _value_type_1: def _parse_value_type_1_item(data: object) -> str: + return cast(str, data) value_type_1_item = _parse_value_type_1_item(value_type_1_item_data) @@ -84,12 +92,23 @@ 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..27d22b4a 100644 --- a/src/splunk_ao/resources/models/dataset_name_filter.py +++ b/src/splunk_ao/resources/models/dataset_name_filter.py @@ -16,20 +16,25 @@ 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,9 +60,25 @@ 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: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/dataset_prepend_row.py b/src/splunk_ao/resources/models/dataset_prepend_row.py index 6bef4d62..94b4fe13 100644 --- a/src/splunk_ao/resources/models/dataset_prepend_row.py +++ b/src/splunk_ao/resources/models/dataset_prepend_row.py @@ -66,6 +66,7 @@ def _parse_row_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) row_id = _parse_row_id(d.pop("row_id", UNSET)) diff --git a/src/splunk_ao/resources/models/dataset_prepend_row_values.py b/src/splunk_ao/resources/models/dataset_prepend_row_values.py index dd484095..65a1834b 100644 --- a/src/splunk_ao/resources/models/dataset_prepend_row_values.py +++ b/src/splunk_ao/resources/models/dataset_prepend_row_values.py @@ -54,6 +54,7 @@ def _parse_additional_property( ) -> DatasetPrependRowValuesAdditionalPropertyType3 | float | int | None | str: if data is None: return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/dataset_prepend_row_values_additional_property_type_3.py b/src/splunk_ao/resources/models/dataset_prepend_row_values_additional_property_type_3.py index 7bde26e2..8c9b9e6f 100644 --- a/src/splunk_ao/resources/models/dataset_prepend_row_values_additional_property_type_3.py +++ b/src/splunk_ao/resources/models/dataset_prepend_row_values_additional_property_type_3.py @@ -34,6 +34,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_additional_property(data: object) -> float | int | None | str: if data is None: return data + return cast(float | int | None | str, data) additional_property = _parse_additional_property(prop_dict) diff --git a/src/splunk_ao/resources/models/dataset_project.py b/src/splunk_ao/resources/models/dataset_project.py index cd2dc8df..fd766e75 100644 --- a/src/splunk_ao/resources/models/dataset_project.py +++ b/src/splunk_ao/resources/models/dataset_project.py @@ -79,6 +79,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_created_by_user(data: object) -> None | UserInfo: if data is None: return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/dataset_row.py b/src/splunk_ao/resources/models/dataset_row.py index d74a1ca5..5d8c610d 100644 --- a/src/splunk_ao/resources/models/dataset_row.py +++ b/src/splunk_ao/resources/models/dataset_row.py @@ -79,11 +79,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: values = [] _values = d.pop("values") + for values_item_data in _values: def _parse_values_item(data: object) -> DatasetRowValuesItemType3 | float | int | None | str: if data is None: return data + try: if not isinstance(data, dict): raise TypeError() @@ -103,6 +105,7 @@ def _parse_values_item(data: object) -> DatasetRowValuesItemType3 | float | int def _parse_metadata(data: object) -> DatasetRowMetadata | None: if data is None: return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/dataset_row_metadata.py b/src/splunk_ao/resources/models/dataset_row_metadata.py index 0487920e..d713bcda 100644 --- a/src/splunk_ao/resources/models/dataset_row_metadata.py +++ b/src/splunk_ao/resources/models/dataset_row_metadata.py @@ -84,6 +84,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_created_by_user(data: object) -> None | UserInfo: if data is None: return data + try: if not isinstance(data, dict): raise TypeError() @@ -103,6 +104,7 @@ def _parse_created_by_user(data: object) -> None | UserInfo: def _parse_updated_by_user(data: object) -> None | UserInfo: if data is None: return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/dataset_row_values_dict.py b/src/splunk_ao/resources/models/dataset_row_values_dict.py index 2ef27580..d57edd1a 100644 --- a/src/splunk_ao/resources/models/dataset_row_values_dict.py +++ b/src/splunk_ao/resources/models/dataset_row_values_dict.py @@ -52,6 +52,7 @@ def _parse_additional_property( ) -> DatasetRowValuesDictAdditionalPropertyType3 | float | int | None | str: if data is None: return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/dataset_row_values_dict_additional_property_type_3.py b/src/splunk_ao/resources/models/dataset_row_values_dict_additional_property_type_3.py index 01c310db..aea2ba89 100644 --- a/src/splunk_ao/resources/models/dataset_row_values_dict_additional_property_type_3.py +++ b/src/splunk_ao/resources/models/dataset_row_values_dict_additional_property_type_3.py @@ -34,6 +34,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_additional_property(data: object) -> float | int | None | str: if data is None: return data + return cast(float | int | None | str, data) additional_property = _parse_additional_property(prop_dict) diff --git a/src/splunk_ao/resources/models/dataset_row_values_item_type_3.py b/src/splunk_ao/resources/models/dataset_row_values_item_type_3.py index a329b65b..23a842c6 100644 --- a/src/splunk_ao/resources/models/dataset_row_values_item_type_3.py +++ b/src/splunk_ao/resources/models/dataset_row_values_item_type_3.py @@ -34,6 +34,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_additional_property(data: object) -> float | int | None | str: if data is None: return data + return cast(float | int | None | str, data) additional_property = _parse_additional_property(prop_dict) diff --git a/src/splunk_ao/resources/models/dataset_update_row_values.py b/src/splunk_ao/resources/models/dataset_update_row_values.py index 74363289..a8c900c2 100644 --- a/src/splunk_ao/resources/models/dataset_update_row_values.py +++ b/src/splunk_ao/resources/models/dataset_update_row_values.py @@ -54,6 +54,7 @@ def _parse_additional_property( ) -> DatasetUpdateRowValuesAdditionalPropertyType3 | float | int | None | str: if data is None: return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/dataset_update_row_values_additional_property_type_3.py b/src/splunk_ao/resources/models/dataset_update_row_values_additional_property_type_3.py index 9f56eb6c..f4d7f2ae 100644 --- a/src/splunk_ao/resources/models/dataset_update_row_values_additional_property_type_3.py +++ b/src/splunk_ao/resources/models/dataset_update_row_values_additional_property_type_3.py @@ -34,6 +34,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_additional_property(data: object) -> float | int | None | str: if data is None: return data + return cast(float | int | None | str, data) additional_property = _parse_additional_property(prop_dict) diff --git a/src/splunk_ao/resources/models/dataset_version_db.py b/src/splunk_ao/resources/models/dataset_version_db.py index f6bd2f2d..74ebb634 100644 --- a/src/splunk_ao/resources/models/dataset_version_db.py +++ b/src/splunk_ao/resources/models/dataset_version_db.py @@ -109,6 +109,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_name(data: object) -> None | str: if data is None: return data + return cast(None | str, data) name = _parse_name(d.pop("name")) @@ -118,6 +119,7 @@ def _parse_name(data: object) -> None | str: def _parse_created_by_user(data: object) -> None | UserInfo: if data is None: return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/decision_choice.py b/src/splunk_ao/resources/models/decision_choice.py index bf7952ec..ea712d6f 100644 --- a/src/splunk_ao/resources/models/decision_choice.py +++ b/src/splunk_ao/resources/models/decision_choice.py @@ -51,6 +51,7 @@ def _parse_description(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) description = _parse_description(d.pop("description", UNSET)) diff --git a/src/splunk_ao/resources/models/decision_level.py b/src/splunk_ao/resources/models/decision_level.py index fb295461..2c959cd4 100644 --- a/src/splunk_ao/resources/models/decision_level.py +++ b/src/splunk_ao/resources/models/decision_level.py @@ -57,6 +57,7 @@ def _parse_description(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) description = _parse_description(d.pop("description", UNSET)) diff --git a/src/splunk_ao/resources/models/decision_scorer_db.py b/src/splunk_ao/resources/models/decision_scorer_db.py index 5839b0da..631c985a 100644 --- a/src/splunk_ao/resources/models/decision_scorer_db.py +++ b/src/splunk_ao/resources/models/decision_scorer_db.py @@ -119,6 +119,7 @@ def _parse_created_by(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) created_by = _parse_created_by(d.pop("created_by", UNSET)) @@ -130,6 +131,7 @@ def _parse_answer_options( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -143,6 +145,7 @@ def _parse_answer_options( raise TypeError() answer_options_type_1 = [] _answer_options_type_1 = data + for answer_options_type_1_item_data in _answer_options_type_1: answer_options_type_1_item = DecisionChoice.from_dict(answer_options_type_1_item_data) @@ -156,6 +159,7 @@ def _parse_answer_options( raise TypeError() answer_options_type_2 = [] _answer_options_type_2 = data + for answer_options_type_2_item_data in _answer_options_type_2: answer_options_type_2_item = DecisionLevel.from_dict(answer_options_type_2_item_data) diff --git a/src/splunk_ao/resources/models/decision_scorer_test_configuration.py b/src/splunk_ao/resources/models/decision_scorer_test_configuration.py index 6bf2e0fd..4a89c715 100644 --- a/src/splunk_ao/resources/models/decision_scorer_test_configuration.py +++ b/src/splunk_ao/resources/models/decision_scorer_test_configuration.py @@ -22,24 +22,36 @@ class DecisionScorerTestConfiguration: for it (get_decision_input_type). Attributes: - output_type (OutputTypeEnum): Enumeration of output types. - scoreable_node_types (list[StepType]): - input_type (InputTypeEnum | None | Unset): + output_type (OutputTypeEnum | str): One of boolean_probability, categorical, discrete. + scoreable_node_types (list[StepType | str]): + input_type (InputTypeEnum | None | str | Unset): ground_truth (bool | Unset): Default: False. """ - output_type: OutputTypeEnum - scoreable_node_types: list[StepType] - input_type: InputTypeEnum | None | Unset = UNSET + output_type: OutputTypeEnum | str + scoreable_node_types: list[StepType | str] + input_type: InputTypeEnum | None | str | Unset = UNSET ground_truth: bool | Unset = False additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - 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 + + if not isinstance(self.scoreable_node_types, list): + raise TypeError("Unexpected value type for scoreable_node_types") 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) input_type: None | str | Unset @@ -65,20 +77,54 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - 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 = [] _scoreable_node_types = d.pop("scoreable_node_types") + if not isinstance(_scoreable_node_types, list): + raise TypeError("Unexpected value type for 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) - 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -87,7 +133,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/document_metadata.py b/src/splunk_ao/resources/models/document_metadata.py index 7527d8ba..e00b560e 100644 --- a/src/splunk_ao/resources/models/document_metadata.py +++ b/src/splunk_ao/resources/models/document_metadata.py @@ -32,6 +32,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: for prop_name, prop_dict in d.items(): def _parse_additional_property(data: object) -> bool | float | int | str: + return cast(bool | float | int | str, data) additional_property = _parse_additional_property(prop_dict) diff --git a/src/splunk_ao/resources/models/experiment_create_request.py b/src/splunk_ao/resources/models/experiment_create_request.py index 3bde54fb..385a316f 100644 --- a/src/splunk_ao/resources/models/experiment_create_request.py +++ b/src/splunk_ao/resources/models/experiment_create_request.py @@ -152,6 +152,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_task_type(data: object) -> Literal[16] | Literal[17] | Unset: if isinstance(data, Unset): return data + task_type_type_0 = cast(Literal[16], data) if task_type_type_0 != 16: raise ValueError(f"task_type_type_0 must match const 16, got '{task_type_type_0}'") @@ -168,6 +169,7 @@ def _parse_playground_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) playground_id = _parse_playground_id(d.pop("playground_id", UNSET)) @@ -177,6 +179,7 @@ def _parse_prompt_template_version_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) prompt_template_version_id = _parse_prompt_template_version_id(d.pop("prompt_template_version_id", UNSET)) @@ -186,6 +189,7 @@ def _parse_dataset(data: object) -> ExperimentDatasetRequest | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -203,6 +207,7 @@ def _parse_playground_prompt_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) playground_prompt_id = _parse_playground_prompt_id(d.pop("playground_prompt_id", UNSET)) @@ -212,6 +217,7 @@ def _parse_prompt_settings(data: object) -> None | PromptRunSettings | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -240,6 +246,7 @@ def _parse_experiment_group_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_group_id = _parse_experiment_group_id(d.pop("experiment_group_id", UNSET)) @@ -249,6 +256,7 @@ def _parse_experiment_group_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_group_name = _parse_experiment_group_name(d.pop("experiment_group_name", UNSET)) diff --git a/src/splunk_ao/resources/models/experiment_dataset.py b/src/splunk_ao/resources/models/experiment_dataset.py index fdac0c5a..f3fd1292 100644 --- a/src/splunk_ao/resources/models/experiment_dataset.py +++ b/src/splunk_ao/resources/models/experiment_dataset.py @@ -26,6 +26,7 @@ class ExperimentDataset: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + dataset_id: None | str | Unset if isinstance(self.dataset_id, Unset): dataset_id = UNSET @@ -65,6 +66,7 @@ def _parse_dataset_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_id = _parse_dataset_id(d.pop("dataset_id", UNSET)) @@ -74,6 +76,7 @@ def _parse_version_index(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) version_index = _parse_version_index(d.pop("version_index", UNSET)) @@ -83,6 +86,7 @@ def _parse_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) name = _parse_name(d.pop("name", UNSET)) 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..94b6f859 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,25 @@ 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,9 +60,25 @@ 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: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/experiment_metrics_request.py b/src/splunk_ao/resources/models/experiment_metrics_request.py index 01a712fb..f4db3dde 100644 --- a/src/splunk_ao/resources/models/experiment_metrics_request.py +++ b/src/splunk_ao/resources/models/experiment_metrics_request.py @@ -120,6 +120,7 @@ def _parse_filters_item( | LogRecordsNumberFilter | LogRecordsTextFilter ): + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/experiment_playground.py b/src/splunk_ao/resources/models/experiment_playground.py index c150cdf7..99ce5f89 100644 --- a/src/splunk_ao/resources/models/experiment_playground.py +++ b/src/splunk_ao/resources/models/experiment_playground.py @@ -24,6 +24,7 @@ class ExperimentPlayground: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + playground_id: None | str | Unset if isinstance(self.playground_id, Unset): playground_id = UNSET @@ -55,6 +56,7 @@ def _parse_playground_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) playground_id = _parse_playground_id(d.pop("playground_id", UNSET)) @@ -64,6 +66,7 @@ def _parse_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) name = _parse_name(d.pop("name", UNSET)) diff --git a/src/splunk_ao/resources/models/experiment_prompt.py b/src/splunk_ao/resources/models/experiment_prompt.py index 04894865..41d06388 100644 --- a/src/splunk_ao/resources/models/experiment_prompt.py +++ b/src/splunk_ao/resources/models/experiment_prompt.py @@ -28,6 +28,7 @@ class ExperimentPrompt: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + prompt_template_id: None | str | Unset if isinstance(self.prompt_template_id, Unset): prompt_template_id = UNSET @@ -75,6 +76,7 @@ def _parse_prompt_template_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) prompt_template_id = _parse_prompt_template_id(d.pop("prompt_template_id", UNSET)) @@ -84,6 +86,7 @@ def _parse_version_index(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) version_index = _parse_version_index(d.pop("version_index", UNSET)) @@ -93,6 +96,7 @@ def _parse_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) name = _parse_name(d.pop("name", UNSET)) @@ -102,6 +106,7 @@ def _parse_content(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) content = _parse_content(d.pop("content", UNSET)) diff --git a/src/splunk_ao/resources/models/experiment_response.py b/src/splunk_ao/resources/models/experiment_response.py index e600130d..cfe95270 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,21 @@ 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 @@ -366,6 +382,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -385,6 +402,7 @@ def _parse_created_by(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) created_by = _parse_created_by(d.pop("created_by", UNSET)) @@ -394,6 +412,7 @@ def _parse_created_by_user(data: object) -> None | Unset | UserInfo: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -411,6 +430,7 @@ def _parse_num_spans(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_spans = _parse_num_spans(d.pop("num_spans", UNSET)) @@ -420,6 +440,7 @@ def _parse_num_traces(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_traces = _parse_num_traces(d.pop("num_traces", UNSET)) @@ -429,6 +450,7 @@ def _parse_num_sessions(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_sessions = _parse_num_sessions(d.pop("num_sessions", UNSET)) @@ -438,6 +460,7 @@ def _parse_dataset(data: object) -> ExperimentDataset | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -464,6 +487,7 @@ def _parse_structured_aggregate_metrics( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -495,6 +519,7 @@ def _parse_ranking_score(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) ranking_score = _parse_ranking_score(d.pop("ranking_score", UNSET)) @@ -504,6 +529,7 @@ def _parse_rank(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) rank = _parse_rank(d.pop("rank", UNSET)) @@ -513,6 +539,7 @@ def _parse_winner(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) winner = _parse_winner(d.pop("winner", UNSET)) @@ -522,6 +549,7 @@ def _parse_playground_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) playground_id = _parse_playground_id(d.pop("playground_id", UNSET)) @@ -531,6 +559,7 @@ def _parse_playground(data: object) -> ExperimentPlayground | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -548,6 +577,7 @@ def _parse_prompt_run_settings(data: object) -> None | PromptRunSettings | Unset return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -565,6 +595,7 @@ def _parse_prompt_model(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) prompt_model = _parse_prompt_model(d.pop("prompt_model", UNSET)) @@ -574,6 +605,7 @@ def _parse_prompt(data: object) -> ExperimentPrompt | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -605,6 +637,7 @@ def _parse_experiment_group_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_group_id = _parse_experiment_group_id(d.pop("experiment_group_id", UNSET)) @@ -614,6 +647,7 @@ def _parse_experiment_group_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_group_name = _parse_experiment_group_name(d.pop("experiment_group_name", UNSET)) @@ -623,6 +657,7 @@ def _parse_experiment_group_is_system(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) experiment_group_is_system = _parse_experiment_group_is_system(d.pop("experiment_group_is_system", UNSET)) diff --git a/src/splunk_ao/resources/models/experiment_response_tags.py b/src/splunk_ao/resources/models/experiment_response_tags.py index 20f31069..fbdcaeb3 100644 --- a/src/splunk_ao/resources/models/experiment_response_tags.py +++ b/src/splunk_ao/resources/models/experiment_response_tags.py @@ -41,6 +41,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: for prop_name, prop_dict in d.items(): additional_property = [] _additional_property = prop_dict + for additional_property_item_data in _additional_property: additional_property_item = RunTagDB.from_dict(additional_property_item_data) diff --git a/src/splunk_ao/resources/models/experiment_update_request.py b/src/splunk_ao/resources/models/experiment_update_request.py index 7683fa5b..fa867480 100644 --- a/src/splunk_ao/resources/models/experiment_update_request.py +++ b/src/splunk_ao/resources/models/experiment_update_request.py @@ -68,6 +68,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_task_type(data: object) -> Literal[16] | Literal[17] | Unset: if isinstance(data, Unset): return data + task_type_type_0 = cast(Literal[16], data) if task_type_type_0 != 16: raise ValueError(f"task_type_type_0 must match const 16, got '{task_type_type_0}'") @@ -84,6 +85,7 @@ def _parse_experiment_group_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_group_id = _parse_experiment_group_id(d.pop("experiment_group_id", UNSET)) @@ -93,6 +95,7 @@ def _parse_experiment_group_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_group_name = _parse_experiment_group_name(d.pop("experiment_group_name", 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 8e85e8e5..a10c297e 100644 --- a/src/splunk_ao/resources/models/extended_agent_span_record.py +++ b/src/splunk_ao/resources/models/extended_agent_span_record.py @@ -70,7 +70,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 @@ -79,7 +79,7 @@ class ExtendedAgentSpanRecord: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -89,7 +89,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. agent_name (None | str | Unset): Name of the agent. """ @@ -125,13 +125,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -139,7 +139,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 agent_name: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -354,9 +354,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -428,9 +435,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 agent_name: None | str | Unset if isinstance(self.agent_name, Unset): @@ -561,11 +572,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | list[Message] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: input_type_1_item = Message.from_dict(input_type_1_item_data) @@ -579,9 +592,11 @@ def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | lis raise TypeError() input_type_2 = [] _input_type_2 = data + for input_type_2_item_data in _input_type_2: def _parse_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -614,11 +629,13 @@ def _parse_redacted_input( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: redacted_input_type_1_item = Message.from_dict(redacted_input_type_1_item_data) @@ -632,9 +649,11 @@ def _parse_redacted_input( raise TypeError() redacted_input_type_2 = [] _redacted_input_type_2 = data + for redacted_input_type_2_item_data in _redacted_input_type_2: def _parse_redacted_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -667,6 +686,7 @@ def _parse_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -680,6 +700,7 @@ def _parse_output( raise TypeError() output_type_2 = [] _output_type_2 = data + for output_type_2_item_data in _output_type_2: output_type_2_item = Document.from_dict(output_type_2_item_data) @@ -693,9 +714,11 @@ def _parse_output( raise TypeError() output_type_3 = [] _output_type_3 = data + for output_type_3_item_data in _output_type_3: def _parse_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -739,6 +762,7 @@ def _parse_redacted_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -752,6 +776,7 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_2 = [] _redacted_output_type_2 = data + for redacted_output_type_2_item_data in _redacted_output_type_2: redacted_output_type_2_item = Document.from_dict(redacted_output_type_2_item_data) @@ -765,9 +790,11 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_3 = [] _redacted_output_type_3 = data + for redacted_output_type_3_item_data in _redacted_output_type_3: def _parse_redacted_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -827,6 +854,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -843,6 +871,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -852,6 +881,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -861,6 +891,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -877,6 +908,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -886,6 +918,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -903,6 +936,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -912,6 +946,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -921,6 +956,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -942,11 +978,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -969,6 +1023,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -980,15 +1035,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -997,7 +1054,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -1006,6 +1065,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -1027,6 +1087,7 @@ def _parse_metric_info(data: object) -> ExtendedAgentSpanRecordMetricInfoType0 | return data if isinstance(data, Unset): return data + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -1100,6 +1161,7 @@ def _parse_files(data: object) -> ExtendedAgentSpanRecordFilesType0 | None | Uns return data if isinstance(data, Unset): return data + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -1175,22 +1237,35 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) 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)) def _parse_agent_name(data: object) -> None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) agent_name = _parse_agent_name(d.pop("agent_name", UNSET)) diff --git a/src/splunk_ao/resources/models/extended_agent_span_record_metric_info_type_0.py b/src/splunk_ao/resources/models/extended_agent_span_record_metric_info_type_0.py index 0dfcd83c..34a4a829 100644 --- a/src/splunk_ao/resources/models/extended_agent_span_record_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/extended_agent_span_record_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() 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 675df0d9..9840db77 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 @@ -97,7 +97,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 @@ -106,7 +106,7 @@ class ExtendedAgentSpanRecordWithChildren: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -116,7 +116,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. agent_name (None | str | Unset): Name of the agent. """ @@ -164,13 +164,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -178,7 +178,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 agent_name: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -424,9 +424,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -498,9 +505,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 agent_name: None | str | Unset if isinstance(self.agent_name, Unset): @@ -673,6 +684,7 @@ def _parse_spans_item( | ExtendedToolSpanRecordWithChildren | ExtendedWorkflowSpanRecordWithChildren ): + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -802,11 +814,13 @@ def _parse_spans_item( def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | list[Message] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: input_type_1_item = Message.from_dict(input_type_1_item_data) @@ -820,9 +834,11 @@ def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | lis raise TypeError() input_type_2 = [] _input_type_2 = data + for input_type_2_item_data in _input_type_2: def _parse_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -855,11 +871,13 @@ def _parse_redacted_input( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: redacted_input_type_1_item = Message.from_dict(redacted_input_type_1_item_data) @@ -873,9 +891,11 @@ def _parse_redacted_input( raise TypeError() redacted_input_type_2 = [] _redacted_input_type_2 = data + for redacted_input_type_2_item_data in _redacted_input_type_2: def _parse_redacted_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -908,6 +928,7 @@ def _parse_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -921,6 +942,7 @@ def _parse_output( raise TypeError() output_type_2 = [] _output_type_2 = data + for output_type_2_item_data in _output_type_2: output_type_2_item = Document.from_dict(output_type_2_item_data) @@ -934,9 +956,11 @@ def _parse_output( raise TypeError() output_type_3 = [] _output_type_3 = data + for output_type_3_item_data in _output_type_3: def _parse_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -980,6 +1004,7 @@ def _parse_redacted_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -993,6 +1018,7 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_2 = [] _redacted_output_type_2 = data + for redacted_output_type_2_item_data in _redacted_output_type_2: redacted_output_type_2_item = Document.from_dict(redacted_output_type_2_item_data) @@ -1006,9 +1032,11 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_3 = [] _redacted_output_type_3 = data + for redacted_output_type_3_item_data in _redacted_output_type_3: def _parse_redacted_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -1068,6 +1096,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -1084,6 +1113,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -1093,6 +1123,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -1102,6 +1133,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -1118,6 +1150,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -1127,6 +1160,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1144,6 +1178,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -1153,6 +1188,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -1162,6 +1198,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -1185,11 +1222,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -1216,6 +1271,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -1227,15 +1283,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1244,7 +1302,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -1253,6 +1313,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -1274,6 +1335,7 @@ def _parse_metric_info(data: object) -> ExtendedAgentSpanRecordWithChildrenMetri return data if isinstance(data, Unset): return data + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -1347,6 +1409,7 @@ def _parse_files(data: object) -> ExtendedAgentSpanRecordWithChildrenFilesType0 return data if isinstance(data, Unset): return data + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -1422,22 +1485,35 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) 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)) def _parse_agent_name(data: object) -> None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) agent_name = _parse_agent_name(d.pop("agent_name", UNSET)) diff --git a/src/splunk_ao/resources/models/extended_agent_span_record_with_children_metric_info_type_0.py b/src/splunk_ao/resources/models/extended_agent_span_record_with_children_metric_info_type_0.py index 352ef262..48ad887b 100644 --- a/src/splunk_ao/resources/models/extended_agent_span_record_with_children_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/extended_agent_span_record_with_children_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() 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 a24a3270..f0569c16 100644 --- a/src/splunk_ao/resources/models/extended_control_span_record.py +++ b/src/splunk_ao/resources/models/extended_control_span_record.py @@ -70,7 +70,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 @@ -79,7 +79,7 @@ class ExtendedControlSpanRecord: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -91,9 +91,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. @@ -129,13 +129,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -145,8 +145,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) @@ -323,9 +323,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -571,11 +578,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | list[Message] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: input_type_1_item = Message.from_dict(input_type_1_item_data) @@ -589,9 +598,11 @@ def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | lis raise TypeError() input_type_2 = [] _input_type_2 = data + for input_type_2_item_data in _input_type_2: def _parse_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -624,11 +635,13 @@ def _parse_redacted_input( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: redacted_input_type_1_item = Message.from_dict(redacted_input_type_1_item_data) @@ -642,9 +655,11 @@ def _parse_redacted_input( raise TypeError() redacted_input_type_2 = [] _redacted_input_type_2 = data + for redacted_input_type_2_item_data in _redacted_input_type_2: def _parse_redacted_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -675,6 +690,7 @@ def _parse_output(data: object) -> ControlResult | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -692,6 +708,7 @@ def _parse_redacted_output(data: object) -> ControlResult | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -727,6 +744,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -743,6 +761,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -752,6 +771,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -761,6 +781,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -777,6 +798,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -786,6 +808,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -803,6 +826,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -812,6 +836,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -821,6 +846,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -842,11 +868,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -869,6 +913,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -880,15 +925,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -897,7 +944,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -906,6 +955,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -927,6 +977,7 @@ def _parse_metric_info(data: object) -> ExtendedControlSpanRecordMetricInfoType0 return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -944,6 +995,7 @@ def _parse_files(data: object) -> ExtendedControlSpanRecordFilesType0 | None | U return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -963,6 +1015,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) @@ -972,6 +1025,7 @@ def _parse_control_id(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) control_id = _parse_control_id(d.pop("control_id", UNSET)) @@ -981,15 +1035,17 @@ def _parse_agent_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -998,15 +1054,18 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -1015,7 +1074,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)) @@ -1024,6 +1085,7 @@ def _parse_evaluator_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) evaluator_name = _parse_evaluator_name(d.pop("evaluator_name", UNSET)) @@ -1033,6 +1095,7 @@ def _parse_selector_path(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) selector_path = _parse_selector_path(d.pop("selector_path", UNSET)) diff --git a/src/splunk_ao/resources/models/extended_control_span_record_metric_info_type_0.py b/src/splunk_ao/resources/models/extended_control_span_record_metric_info_type_0.py index e9900c26..a7a33a49 100644 --- a/src/splunk_ao/resources/models/extended_control_span_record_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/extended_control_span_record_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/extended_http_span_record.py b/src/splunk_ao/resources/models/extended_http_span_record.py index 886b9f16..a5bb76e7 100644 --- a/src/splunk_ao/resources/models/extended_http_span_record.py +++ b/src/splunk_ao/resources/models/extended_http_span_record.py @@ -69,7 +69,7 @@ class ExtendedHttpSpanRecord: record annotations (ExtendedHttpSpanRecordAnnotations | 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 (ExtendedHttpSpanRecordAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (ExtendedHttpSpanRecordAnnotationAgreement | Unset): Annotation agreement scores keyed by @@ -78,7 +78,7 @@ class ExtendedHttpSpanRecord: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -122,13 +122,13 @@ class ExtendedHttpSpanRecord: feedback_rating_info: ExtendedHttpSpanRecordFeedbackRatingInfo | Unset = UNSET annotations: ExtendedHttpSpanRecordAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: ExtendedHttpSpanRecordAnnotationAggregates | Unset = UNSET annotation_agreement: ExtendedHttpSpanRecordAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -349,9 +349,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -540,11 +547,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | list[Message] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: input_type_1_item = Message.from_dict(input_type_1_item_data) @@ -558,9 +567,11 @@ def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | lis raise TypeError() input_type_2 = [] _input_type_2 = data + for input_type_2_item_data in _input_type_2: def _parse_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -593,11 +604,13 @@ def _parse_redacted_input( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: redacted_input_type_1_item = Message.from_dict(redacted_input_type_1_item_data) @@ -611,9 +624,11 @@ def _parse_redacted_input( raise TypeError() redacted_input_type_2 = [] _redacted_input_type_2 = data + for redacted_input_type_2_item_data in _redacted_input_type_2: def _parse_redacted_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -646,6 +661,7 @@ def _parse_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -659,6 +675,7 @@ def _parse_output( raise TypeError() output_type_2 = [] _output_type_2 = data + for output_type_2_item_data in _output_type_2: output_type_2_item = Document.from_dict(output_type_2_item_data) @@ -672,9 +689,11 @@ def _parse_output( raise TypeError() output_type_3 = [] _output_type_3 = data + for output_type_3_item_data in _output_type_3: def _parse_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -718,6 +737,7 @@ def _parse_redacted_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -731,6 +751,7 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_2 = [] _redacted_output_type_2 = data + for redacted_output_type_2_item_data in _redacted_output_type_2: redacted_output_type_2_item = Document.from_dict(redacted_output_type_2_item_data) @@ -744,9 +765,11 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_3 = [] _redacted_output_type_3 = data + for redacted_output_type_3_item_data in _redacted_output_type_3: def _parse_redacted_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -806,6 +829,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -822,6 +846,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -831,6 +856,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -840,6 +866,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -856,6 +883,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -865,6 +893,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -882,6 +911,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -891,6 +921,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -900,6 +931,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -921,11 +953,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -948,6 +998,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -959,15 +1010,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -976,7 +1029,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -985,6 +1040,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -1006,6 +1062,7 @@ def _parse_metric_info(data: object) -> ExtendedHttpSpanRecordMetricInfoType0 | return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1023,6 +1080,7 @@ def _parse_files(data: object) -> ExtendedHttpSpanRecordFilesType0 | None | Unse return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1042,6 +1100,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) diff --git a/src/splunk_ao/resources/models/extended_http_span_record_metric_info_type_0.py b/src/splunk_ao/resources/models/extended_http_span_record_metric_info_type_0.py index 8ea32766..7cf0524f 100644 --- a/src/splunk_ao/resources/models/extended_http_span_record_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/extended_http_span_record_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/extended_http_span_record_with_children.py b/src/splunk_ao/resources/models/extended_http_span_record_with_children.py index 9cd3da16..cb17c139 100644 --- a/src/splunk_ao/resources/models/extended_http_span_record_with_children.py +++ b/src/splunk_ao/resources/models/extended_http_span_record_with_children.py @@ -96,7 +96,7 @@ class ExtendedHttpSpanRecordWithChildren: annotations (ExtendedHttpSpanRecordWithChildrenAnnotations | 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 (ExtendedHttpSpanRecordWithChildrenAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (ExtendedHttpSpanRecordWithChildrenAnnotationAgreement | Unset): Annotation agreement @@ -105,7 +105,7 @@ class ExtendedHttpSpanRecordWithChildren: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -161,13 +161,13 @@ class ExtendedHttpSpanRecordWithChildren: feedback_rating_info: ExtendedHttpSpanRecordWithChildrenFeedbackRatingInfo | Unset = UNSET annotations: ExtendedHttpSpanRecordWithChildrenAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: ExtendedHttpSpanRecordWithChildrenAnnotationAggregates | Unset = UNSET annotation_agreement: ExtendedHttpSpanRecordWithChildrenAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -420,9 +420,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -655,6 +662,7 @@ def _parse_spans_item( | ExtendedToolSpanRecordWithChildren | ExtendedWorkflowSpanRecordWithChildren ): + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -784,11 +792,13 @@ def _parse_spans_item( def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | list[Message] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: input_type_1_item = Message.from_dict(input_type_1_item_data) @@ -802,9 +812,11 @@ def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | lis raise TypeError() input_type_2 = [] _input_type_2 = data + for input_type_2_item_data in _input_type_2: def _parse_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -837,11 +849,13 @@ def _parse_redacted_input( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: redacted_input_type_1_item = Message.from_dict(redacted_input_type_1_item_data) @@ -855,9 +869,11 @@ def _parse_redacted_input( raise TypeError() redacted_input_type_2 = [] _redacted_input_type_2 = data + for redacted_input_type_2_item_data in _redacted_input_type_2: def _parse_redacted_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -890,6 +906,7 @@ def _parse_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -903,6 +920,7 @@ def _parse_output( raise TypeError() output_type_2 = [] _output_type_2 = data + for output_type_2_item_data in _output_type_2: output_type_2_item = Document.from_dict(output_type_2_item_data) @@ -916,9 +934,11 @@ def _parse_output( raise TypeError() output_type_3 = [] _output_type_3 = data + for output_type_3_item_data in _output_type_3: def _parse_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -962,6 +982,7 @@ def _parse_redacted_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -975,6 +996,7 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_2 = [] _redacted_output_type_2 = data + for redacted_output_type_2_item_data in _redacted_output_type_2: redacted_output_type_2_item = Document.from_dict(redacted_output_type_2_item_data) @@ -988,9 +1010,11 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_3 = [] _redacted_output_type_3 = data + for redacted_output_type_3_item_data in _redacted_output_type_3: def _parse_redacted_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -1050,6 +1074,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -1066,6 +1091,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -1075,6 +1101,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -1084,6 +1111,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -1100,6 +1128,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -1109,6 +1138,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1126,6 +1156,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -1135,6 +1166,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -1144,6 +1176,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -1165,11 +1198,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -1196,6 +1247,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -1207,15 +1259,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1224,7 +1278,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -1233,6 +1289,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -1254,6 +1311,7 @@ def _parse_metric_info(data: object) -> ExtendedHttpSpanRecordWithChildrenMetric return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1271,6 +1329,7 @@ def _parse_files(data: object) -> ExtendedHttpSpanRecordWithChildrenFilesType0 | return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1290,6 +1349,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) diff --git a/src/splunk_ao/resources/models/extended_http_span_record_with_children_metric_info_type_0.py b/src/splunk_ao/resources/models/extended_http_span_record_with_children_metric_info_type_0.py index 0e7ab0ee..5ca3d61a 100644 --- a/src/splunk_ao/resources/models/extended_http_span_record_with_children_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/extended_http_span_record_with_children_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() 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 a230e16b..eb2d6d9a 100644 --- a/src/splunk_ao/resources/models/extended_llm_span_record.py +++ b/src/splunk_ao/resources/models/extended_llm_span_record.py @@ -70,7 +70,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 @@ -79,7 +79,7 @@ class ExtendedLlmSpanRecord: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -128,13 +128,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -310,9 +310,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -594,11 +601,13 @@ def _parse_redacted_input(data: object) -> list[Message] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_0 = [] _redacted_input_type_0 = data + for redacted_input_type_0_item_data in _redacted_input_type_0: redacted_input_type_0_item = Message.from_dict(redacted_input_type_0_item_data) @@ -623,6 +632,7 @@ def _parse_redacted_output(data: object) -> Message | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -658,6 +668,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -674,6 +685,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -683,6 +695,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -692,6 +705,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -708,6 +722,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -717,6 +732,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -734,6 +750,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -743,6 +760,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -752,6 +770,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -773,11 +792,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -800,6 +837,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -811,15 +849,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -828,7 +868,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -837,6 +879,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -858,6 +901,7 @@ def _parse_metric_info(data: object) -> ExtendedLlmSpanRecordMetricInfoType0 | N return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -875,6 +919,7 @@ def _parse_files(data: object) -> ExtendedLlmSpanRecordFilesType0 | None | Unset return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -894,6 +939,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) @@ -903,11 +949,13 @@ def _parse_tools(data: object) -> list[ExtendedLlmSpanRecordToolsType0Item] | No return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() tools_type_0 = [] _tools_type_0 = data + for tools_type_0_item_data in _tools_type_0: tools_type_0_item = ExtendedLlmSpanRecordToolsType0Item.from_dict(tools_type_0_item_data) @@ -940,11 +988,13 @@ def _parse_events( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() events_type_0 = [] _events_type_0 = data + for events_type_0_item_data in _events_type_0: def _parse_events_type_0_item( @@ -959,6 +1009,7 @@ def _parse_events_type_0_item( | ReasoningEvent | WebSearchCallEvent ): + try: if not isinstance(data, dict): raise TypeError() @@ -1051,6 +1102,7 @@ def _parse_model(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model = _parse_model(d.pop("model", UNSET)) @@ -1060,6 +1112,7 @@ def _parse_provider(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) provider = _parse_provider(d.pop("provider", UNSET)) @@ -1069,6 +1122,7 @@ def _parse_temperature(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) temperature = _parse_temperature(d.pop("temperature", UNSET)) @@ -1078,6 +1132,7 @@ def _parse_finish_reason(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) finish_reason = _parse_finish_reason(d.pop("finish_reason", UNSET)) diff --git a/src/splunk_ao/resources/models/extended_llm_span_record_metric_info_type_0.py b/src/splunk_ao/resources/models/extended_llm_span_record_metric_info_type_0.py index 53f54e96..83458650 100644 --- a/src/splunk_ao/resources/models/extended_llm_span_record_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/extended_llm_span_record_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/extended_read_session_record_with_children.py b/src/splunk_ao/resources/models/extended_read_session_record_with_children.py index d26dc563..d2d83940 100644 --- a/src/splunk_ao/resources/models/extended_read_session_record_with_children.py +++ b/src/splunk_ao/resources/models/extended_read_session_record_with_children.py @@ -96,7 +96,7 @@ class ExtendedReadSessionRecordWithChildren: annotations (ExtendedReadSessionRecordWithChildrenAnnotations | 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 (ExtendedReadSessionRecordWithChildrenAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (ExtendedReadSessionRecordWithChildrenAnnotationAgreement | Unset): Annotation agreement @@ -105,7 +105,7 @@ class ExtendedReadSessionRecordWithChildren: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -149,13 +149,13 @@ class ExtendedReadSessionRecordWithChildren: feedback_rating_info: ExtendedReadSessionRecordWithChildrenFeedbackRatingInfo | Unset = UNSET annotations: ExtendedReadSessionRecordWithChildrenAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: ExtendedReadSessionRecordWithChildrenAnnotationAggregates | Unset = UNSET annotation_agreement: ExtendedReadSessionRecordWithChildrenAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -384,9 +384,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -607,11 +614,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | list[Message] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: input_type_1_item = Message.from_dict(input_type_1_item_data) @@ -625,9 +634,11 @@ def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | lis raise TypeError() input_type_2 = [] _input_type_2 = data + for input_type_2_item_data in _input_type_2: def _parse_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -660,11 +671,13 @@ def _parse_redacted_input( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: redacted_input_type_1_item = Message.from_dict(redacted_input_type_1_item_data) @@ -678,9 +691,11 @@ def _parse_redacted_input( raise TypeError() redacted_input_type_2 = [] _redacted_input_type_2 = data + for redacted_input_type_2_item_data in _redacted_input_type_2: def _parse_redacted_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -713,6 +728,7 @@ def _parse_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -726,6 +742,7 @@ def _parse_output( raise TypeError() output_type_2 = [] _output_type_2 = data + for output_type_2_item_data in _output_type_2: output_type_2_item = Document.from_dict(output_type_2_item_data) @@ -739,9 +756,11 @@ def _parse_output( raise TypeError() output_type_3 = [] _output_type_3 = data + for output_type_3_item_data in _output_type_3: def _parse_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -785,6 +804,7 @@ def _parse_redacted_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -798,6 +818,7 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_2 = [] _redacted_output_type_2 = data + for redacted_output_type_2_item_data in _redacted_output_type_2: redacted_output_type_2_item = Document.from_dict(redacted_output_type_2_item_data) @@ -811,9 +832,11 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_3 = [] _redacted_output_type_3 = data + for redacted_output_type_3_item_data in _redacted_output_type_3: def _parse_redacted_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -873,6 +896,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -889,6 +913,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -898,6 +923,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -907,6 +933,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -923,6 +950,7 @@ def _parse_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_id = _parse_session_id(d.pop("session_id", UNSET)) @@ -932,6 +960,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -941,6 +970,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -958,6 +988,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -967,6 +998,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -976,6 +1008,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -999,11 +1032,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -1030,6 +1081,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -1041,15 +1093,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1058,7 +1112,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -1067,6 +1123,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -1088,6 +1145,7 @@ def _parse_metric_info(data: object) -> ExtendedReadSessionRecordWithChildrenMet return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1105,6 +1163,7 @@ def _parse_files(data: object) -> ExtendedReadSessionRecordWithChildrenFilesType return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1122,6 +1181,7 @@ def _parse_previous_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) previous_session_id = _parse_previous_session_id(d.pop("previous_session_id", UNSET)) @@ -1131,6 +1191,7 @@ def _parse_num_traces(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_traces = _parse_num_traces(d.pop("num_traces", UNSET)) @@ -1142,6 +1203,7 @@ def _parse_num_traces(data: object) -> int | None | Unset: for traces_item_data in _traces: def _parse_traces_item(data: object) -> ExtendedTraceRecordWithChildren | StubTraceRecord: + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") diff --git a/src/splunk_ao/resources/models/extended_read_session_record_with_children_metric_info_type_0.py b/src/splunk_ao/resources/models/extended_read_session_record_with_children_metric_info_type_0.py index b4e5bdd7..66c5845b 100644 --- a/src/splunk_ao/resources/models/extended_read_session_record_with_children_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/extended_read_session_record_with_children_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() 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 30376dc5..403e28d0 100644 --- a/src/splunk_ao/resources/models/extended_retriever_span_record.py +++ b/src/splunk_ao/resources/models/extended_retriever_span_record.py @@ -67,7 +67,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 @@ -76,7 +76,7 @@ class ExtendedRetrieverSpanRecord: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -116,13 +116,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -269,9 +269,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -468,6 +475,7 @@ def _parse_redacted_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) redacted_input = _parse_redacted_input(d.pop("redacted_input", UNSET)) @@ -486,11 +494,13 @@ def _parse_redacted_output(data: object) -> list[Document] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_output_type_0 = [] _redacted_output_type_0 = data + for redacted_output_type_0_item_data in _redacted_output_type_0: redacted_output_type_0_item = Document.from_dict(redacted_output_type_0_item_data) @@ -526,6 +536,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -542,6 +553,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -551,6 +563,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -560,6 +573,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -576,6 +590,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -585,6 +600,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -602,6 +618,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -611,6 +628,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -620,6 +638,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -641,11 +660,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -668,6 +705,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -679,15 +717,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -696,7 +736,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -705,6 +747,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -726,6 +769,7 @@ def _parse_metric_info(data: object) -> ExtendedRetrieverSpanRecordMetricInfoTyp return data if isinstance(data, Unset): return data + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -799,6 +843,7 @@ def _parse_files(data: object) -> ExtendedRetrieverSpanRecordFilesType0 | None | return data if isinstance(data, Unset): return data + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -874,6 +919,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) diff --git a/src/splunk_ao/resources/models/extended_retriever_span_record_metric_info_type_0.py b/src/splunk_ao/resources/models/extended_retriever_span_record_metric_info_type_0.py index 61d9e6ad..9a5b73e0 100644 --- a/src/splunk_ao/resources/models/extended_retriever_span_record_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/extended_retriever_span_record_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() 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 1ce2c992..3cb7007e 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 @@ -88,7 +88,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 @@ -97,7 +97,7 @@ class ExtendedRetrieverSpanRecordWithChildren: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -149,13 +149,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -331,9 +331,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -562,6 +569,7 @@ def _parse_spans_item( | ExtendedToolSpanRecordWithChildren | ExtendedWorkflowSpanRecordWithChildren ): + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -695,6 +703,7 @@ def _parse_redacted_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) redacted_input = _parse_redacted_input(d.pop("redacted_input", UNSET)) @@ -713,11 +722,13 @@ def _parse_redacted_output(data: object) -> list[Document] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_output_type_0 = [] _redacted_output_type_0 = data + for redacted_output_type_0_item_data in _redacted_output_type_0: redacted_output_type_0_item = Document.from_dict(redacted_output_type_0_item_data) @@ -753,6 +764,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -769,6 +781,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -778,6 +791,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -787,6 +801,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -803,6 +818,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -812,6 +828,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -829,6 +846,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -838,6 +856,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -847,6 +866,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -870,11 +890,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -901,6 +939,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -912,15 +951,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -929,7 +970,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -938,6 +981,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -959,6 +1003,7 @@ def _parse_metric_info(data: object) -> ExtendedRetrieverSpanRecordWithChildrenM return data if isinstance(data, Unset): return data + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -1032,6 +1077,7 @@ def _parse_files(data: object) -> ExtendedRetrieverSpanRecordWithChildrenFilesTy return data if isinstance(data, Unset): return data + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -1107,6 +1153,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) diff --git a/src/splunk_ao/resources/models/extended_retriever_span_record_with_children_metric_info_type_0.py b/src/splunk_ao/resources/models/extended_retriever_span_record_with_children_metric_info_type_0.py index 10651c5e..eda49d17 100644 --- a/src/splunk_ao/resources/models/extended_retriever_span_record_with_children_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/extended_retriever_span_record_with_children_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/extended_session_record.py b/src/splunk_ao/resources/models/extended_session_record.py index fae5adba..589008f2 100644 --- a/src/splunk_ao/resources/models/extended_session_record.py +++ b/src/splunk_ao/resources/models/extended_session_record.py @@ -67,7 +67,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 @@ -76,7 +76,7 @@ class ExtendedSessionRecord: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -119,13 +119,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -348,9 +348,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -539,11 +546,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | list[Message] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: input_type_1_item = Message.from_dict(input_type_1_item_data) @@ -557,9 +566,11 @@ def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | lis raise TypeError() input_type_2 = [] _input_type_2 = data + for input_type_2_item_data in _input_type_2: def _parse_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -592,11 +603,13 @@ def _parse_redacted_input( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: redacted_input_type_1_item = Message.from_dict(redacted_input_type_1_item_data) @@ -610,9 +623,11 @@ def _parse_redacted_input( raise TypeError() redacted_input_type_2 = [] _redacted_input_type_2 = data + for redacted_input_type_2_item_data in _redacted_input_type_2: def _parse_redacted_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -645,6 +660,7 @@ def _parse_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -658,6 +674,7 @@ def _parse_output( raise TypeError() output_type_2 = [] _output_type_2 = data + for output_type_2_item_data in _output_type_2: output_type_2_item = Document.from_dict(output_type_2_item_data) @@ -671,9 +688,11 @@ def _parse_output( raise TypeError() output_type_3 = [] _output_type_3 = data + for output_type_3_item_data in _output_type_3: def _parse_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -717,6 +736,7 @@ def _parse_redacted_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -730,6 +750,7 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_2 = [] _redacted_output_type_2 = data + for redacted_output_type_2_item_data in _redacted_output_type_2: redacted_output_type_2_item = Document.from_dict(redacted_output_type_2_item_data) @@ -743,9 +764,11 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_3 = [] _redacted_output_type_3 = data + for redacted_output_type_3_item_data in _redacted_output_type_3: def _parse_redacted_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -805,6 +828,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -821,6 +845,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -830,6 +855,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -839,6 +865,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -855,6 +882,7 @@ def _parse_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_id = _parse_session_id(d.pop("session_id", UNSET)) @@ -864,6 +892,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -873,6 +902,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -890,6 +920,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -899,6 +930,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -908,6 +940,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -929,11 +962,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -956,6 +1007,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -967,15 +1019,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -984,7 +1038,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -993,6 +1049,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -1014,6 +1071,7 @@ def _parse_metric_info(data: object) -> ExtendedSessionRecordMetricInfoType0 | N return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1031,6 +1089,7 @@ def _parse_files(data: object) -> ExtendedSessionRecordFilesType0 | None | Unset return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1048,6 +1107,7 @@ def _parse_previous_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) previous_session_id = _parse_previous_session_id(d.pop("previous_session_id", UNSET)) @@ -1057,6 +1117,7 @@ def _parse_num_traces(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_traces = _parse_num_traces(d.pop("num_traces", UNSET)) diff --git a/src/splunk_ao/resources/models/extended_session_record_metric_info_type_0.py b/src/splunk_ao/resources/models/extended_session_record_metric_info_type_0.py index e1bea712..effe7e1c 100644 --- a/src/splunk_ao/resources/models/extended_session_record_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/extended_session_record_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() 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 8ec0ce2c..eaf3edbe 100644 --- a/src/splunk_ao/resources/models/extended_tool_span_record.py +++ b/src/splunk_ao/resources/models/extended_tool_span_record.py @@ -60,7 +60,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 @@ -69,7 +69,7 @@ class ExtendedToolSpanRecord: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -110,13 +110,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -255,9 +255,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -453,6 +460,7 @@ def _parse_redacted_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) redacted_input = _parse_redacted_input(d.pop("redacted_input", UNSET)) @@ -462,6 +470,7 @@ def _parse_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) output = _parse_output(d.pop("output", UNSET)) @@ -471,6 +480,7 @@ def _parse_redacted_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) redacted_output = _parse_redacted_output(d.pop("redacted_output", UNSET)) @@ -498,6 +508,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -514,6 +525,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -523,6 +535,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -532,6 +545,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -548,6 +562,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -557,6 +572,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -574,6 +590,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -583,6 +600,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -592,6 +610,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -613,11 +632,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -640,6 +677,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -651,15 +689,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -668,7 +708,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -677,6 +719,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -698,6 +741,7 @@ def _parse_metric_info(data: object) -> ExtendedToolSpanRecordMetricInfoType0 | return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -715,6 +759,7 @@ def _parse_files(data: object) -> ExtendedToolSpanRecordFilesType0 | None | Unse return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -734,6 +779,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) @@ -743,6 +789,7 @@ def _parse_tool_call_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) tool_call_id = _parse_tool_call_id(d.pop("tool_call_id", UNSET)) diff --git a/src/splunk_ao/resources/models/extended_tool_span_record_metric_info_type_0.py b/src/splunk_ao/resources/models/extended_tool_span_record_metric_info_type_0.py index ea4c2b54..41abe6b5 100644 --- a/src/splunk_ao/resources/models/extended_tool_span_record_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/extended_tool_span_record_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() 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 2b421281..ac44825f 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 @@ -87,7 +87,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 @@ -96,7 +96,7 @@ class ExtendedToolSpanRecordWithChildren: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -149,13 +149,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -325,9 +325,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -563,6 +570,7 @@ def _parse_spans_item( | ExtendedToolSpanRecordWithChildren | ExtendedWorkflowSpanRecordWithChildren ): + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -696,6 +704,7 @@ def _parse_redacted_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) redacted_input = _parse_redacted_input(d.pop("redacted_input", UNSET)) @@ -705,6 +714,7 @@ def _parse_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) output = _parse_output(d.pop("output", UNSET)) @@ -714,6 +724,7 @@ def _parse_redacted_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) redacted_output = _parse_redacted_output(d.pop("redacted_output", UNSET)) @@ -741,6 +752,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -757,6 +769,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -766,6 +779,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -775,6 +789,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -791,6 +806,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -800,6 +816,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -817,6 +834,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -826,6 +844,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -835,6 +854,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -856,11 +876,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -887,6 +925,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -898,15 +937,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -915,7 +956,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -924,6 +967,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -945,6 +989,7 @@ def _parse_metric_info(data: object) -> ExtendedToolSpanRecordWithChildrenMetric return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -962,6 +1007,7 @@ def _parse_files(data: object) -> ExtendedToolSpanRecordWithChildrenFilesType0 | return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -981,6 +1027,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) @@ -990,6 +1037,7 @@ def _parse_tool_call_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) tool_call_id = _parse_tool_call_id(d.pop("tool_call_id", UNSET)) diff --git a/src/splunk_ao/resources/models/extended_tool_span_record_with_children_metric_info_type_0.py b/src/splunk_ao/resources/models/extended_tool_span_record_with_children_metric_info_type_0.py index c2f79382..15010a97 100644 --- a/src/splunk_ao/resources/models/extended_tool_span_record_with_children_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/extended_tool_span_record_with_children_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/extended_trace_record.py b/src/splunk_ao/resources/models/extended_trace_record.py index ead5a3b2..7f97867d 100644 --- a/src/splunk_ao/resources/models/extended_trace_record.py +++ b/src/splunk_ao/resources/models/extended_trace_record.py @@ -62,7 +62,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 @@ -71,7 +71,7 @@ class ExtendedTraceRecord: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -111,13 +111,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -299,9 +299,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -493,14 +500,17 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: def _parse_input_type_1_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -531,14 +541,17 @@ def _parse_redacted_input(data: object) -> list[FileContentPart | TextContentPar return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: def _parse_redacted_input_type_1_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -569,14 +582,17 @@ def _parse_output(data: object) -> list[FileContentPart | TextContentPart] | Non return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() output_type_1 = [] _output_type_1 = data + for output_type_1_item_data in _output_type_1: def _parse_output_type_1_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -607,14 +623,17 @@ def _parse_redacted_output(data: object) -> list[FileContentPart | TextContentPa return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_output_type_1 = [] _redacted_output_type_1 = data + for redacted_output_type_1_item_data in _redacted_output_type_1: def _parse_redacted_output_type_1_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -663,6 +682,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -679,6 +699,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -688,6 +709,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -697,6 +719,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -713,6 +736,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -730,6 +754,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -739,6 +764,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -748,6 +774,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -769,11 +796,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -796,6 +841,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -807,15 +853,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -824,7 +872,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -833,6 +883,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -854,6 +905,7 @@ def _parse_metric_info(data: object) -> ExtendedTraceRecordMetricInfoType0 | Non return data if isinstance(data, Unset): return data + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -927,6 +979,7 @@ def _parse_files(data: object) -> ExtendedTraceRecordFilesType0 | None | Unset: return data if isinstance(data, Unset): return data + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -1000,6 +1053,7 @@ def _parse_dataset_generated_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_generated_output = _parse_dataset_generated_output(d.pop("dataset_generated_output", UNSET)) @@ -1011,6 +1065,7 @@ def _parse_num_spans(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_spans = _parse_num_spans(d.pop("num_spans", UNSET)) diff --git a/src/splunk_ao/resources/models/extended_trace_record_metric_info_type_0.py b/src/splunk_ao/resources/models/extended_trace_record_metric_info_type_0.py index ba39f343..3a50f8da 100644 --- a/src/splunk_ao/resources/models/extended_trace_record_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/extended_trace_record_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() 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 043ecb7a..5dc3e18b 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 @@ -85,7 +85,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 @@ -94,7 +94,7 @@ class ExtendedTraceRecordWithChildren: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -146,13 +146,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -364,9 +364,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -599,6 +606,7 @@ def _parse_spans_item( | ExtendedToolSpanRecordWithChildren | ExtendedWorkflowSpanRecordWithChildren ): + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -728,14 +736,17 @@ def _parse_spans_item( def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: def _parse_input_type_1_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -766,14 +777,17 @@ def _parse_redacted_input(data: object) -> list[FileContentPart | TextContentPar return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: def _parse_redacted_input_type_1_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -804,14 +818,17 @@ def _parse_output(data: object) -> list[FileContentPart | TextContentPart] | Non return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() output_type_1 = [] _output_type_1 = data + for output_type_1_item_data in _output_type_1: def _parse_output_type_1_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -842,14 +859,17 @@ def _parse_redacted_output(data: object) -> list[FileContentPart | TextContentPa return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_output_type_1 = [] _redacted_output_type_1 = data + for redacted_output_type_1_item_data in _redacted_output_type_1: def _parse_redacted_output_type_1_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -898,6 +918,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -914,6 +935,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -923,6 +945,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -932,6 +955,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -948,6 +972,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -965,6 +990,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -974,6 +1000,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -983,6 +1010,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -1004,11 +1032,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -1033,6 +1079,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -1044,15 +1091,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1061,7 +1110,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -1070,6 +1121,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -1091,6 +1143,7 @@ def _parse_metric_info(data: object) -> ExtendedTraceRecordWithChildrenMetricInf return data if isinstance(data, Unset): return data + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -1164,6 +1217,7 @@ def _parse_files(data: object) -> ExtendedTraceRecordWithChildrenFilesType0 | No return data if isinstance(data, Unset): return data + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -1237,6 +1291,7 @@ def _parse_dataset_generated_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_generated_output = _parse_dataset_generated_output(d.pop("dataset_generated_output", UNSET)) @@ -1248,6 +1303,7 @@ def _parse_num_spans(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_spans = _parse_num_spans(d.pop("num_spans", UNSET)) diff --git a/src/splunk_ao/resources/models/extended_trace_record_with_children_metric_info_type_0.py b/src/splunk_ao/resources/models/extended_trace_record_with_children_metric_info_type_0.py index 468a19ed..8f029510 100644 --- a/src/splunk_ao/resources/models/extended_trace_record_with_children_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/extended_trace_record_with_children_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() 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 2e1aa9d1..411b6b16 100644 --- a/src/splunk_ao/resources/models/extended_workflow_span_record.py +++ b/src/splunk_ao/resources/models/extended_workflow_span_record.py @@ -73,7 +73,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 @@ -82,7 +82,7 @@ class ExtendedWorkflowSpanRecord: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -126,13 +126,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -353,9 +353,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -550,11 +557,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | list[Message] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: input_type_1_item = Message.from_dict(input_type_1_item_data) @@ -568,9 +577,11 @@ def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | lis raise TypeError() input_type_2 = [] _input_type_2 = data + for input_type_2_item_data in _input_type_2: def _parse_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -603,11 +614,13 @@ def _parse_redacted_input( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: redacted_input_type_1_item = Message.from_dict(redacted_input_type_1_item_data) @@ -621,9 +634,11 @@ def _parse_redacted_input( raise TypeError() redacted_input_type_2 = [] _redacted_input_type_2 = data + for redacted_input_type_2_item_data in _redacted_input_type_2: def _parse_redacted_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -656,6 +671,7 @@ def _parse_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -669,6 +685,7 @@ def _parse_output( raise TypeError() output_type_2 = [] _output_type_2 = data + for output_type_2_item_data in _output_type_2: output_type_2_item = Document.from_dict(output_type_2_item_data) @@ -682,9 +699,11 @@ def _parse_output( raise TypeError() output_type_3 = [] _output_type_3 = data + for output_type_3_item_data in _output_type_3: def _parse_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -728,6 +747,7 @@ def _parse_redacted_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -741,6 +761,7 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_2 = [] _redacted_output_type_2 = data + for redacted_output_type_2_item_data in _redacted_output_type_2: redacted_output_type_2_item = Document.from_dict(redacted_output_type_2_item_data) @@ -754,9 +775,11 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_3 = [] _redacted_output_type_3 = data + for redacted_output_type_3_item_data in _redacted_output_type_3: def _parse_redacted_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -816,6 +839,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -832,6 +856,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -841,6 +866,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -850,6 +876,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -866,6 +893,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -875,6 +903,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -892,6 +921,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -901,6 +931,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -910,6 +941,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -931,11 +963,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -958,6 +1008,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -969,15 +1020,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -986,7 +1039,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -995,6 +1050,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -1016,6 +1072,7 @@ def _parse_metric_info(data: object) -> ExtendedWorkflowSpanRecordMetricInfoType return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1033,6 +1090,7 @@ def _parse_files(data: object) -> ExtendedWorkflowSpanRecordFilesType0 | None | return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1052,6 +1110,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) diff --git a/src/splunk_ao/resources/models/extended_workflow_span_record_metric_info_type_0.py b/src/splunk_ao/resources/models/extended_workflow_span_record_metric_info_type_0.py index 1ed5cf34..dd364903 100644 --- a/src/splunk_ao/resources/models/extended_workflow_span_record_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/extended_workflow_span_record_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() 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 37d1f58b..dcf60815 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 @@ -96,7 +96,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 @@ -105,7 +105,7 @@ class ExtendedWorkflowSpanRecordWithChildren: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -161,13 +161,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -419,9 +419,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -654,6 +661,7 @@ def _parse_spans_item( | ExtendedToolSpanRecordWithChildren | ExtendedWorkflowSpanRecordWithChildren ): + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -783,11 +791,13 @@ def _parse_spans_item( def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | list[Message] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: input_type_1_item = Message.from_dict(input_type_1_item_data) @@ -801,9 +811,11 @@ def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | lis raise TypeError() input_type_2 = [] _input_type_2 = data + for input_type_2_item_data in _input_type_2: def _parse_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -836,11 +848,13 @@ def _parse_redacted_input( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: redacted_input_type_1_item = Message.from_dict(redacted_input_type_1_item_data) @@ -854,9 +868,11 @@ def _parse_redacted_input( raise TypeError() redacted_input_type_2 = [] _redacted_input_type_2 = data + for redacted_input_type_2_item_data in _redacted_input_type_2: def _parse_redacted_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -889,6 +905,7 @@ def _parse_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -902,6 +919,7 @@ def _parse_output( raise TypeError() output_type_2 = [] _output_type_2 = data + for output_type_2_item_data in _output_type_2: output_type_2_item = Document.from_dict(output_type_2_item_data) @@ -915,9 +933,11 @@ def _parse_output( raise TypeError() output_type_3 = [] _output_type_3 = data + for output_type_3_item_data in _output_type_3: def _parse_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -961,6 +981,7 @@ def _parse_redacted_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -974,6 +995,7 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_2 = [] _redacted_output_type_2 = data + for redacted_output_type_2_item_data in _redacted_output_type_2: redacted_output_type_2_item = Document.from_dict(redacted_output_type_2_item_data) @@ -987,9 +1009,11 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_3 = [] _redacted_output_type_3 = data + for redacted_output_type_3_item_data in _redacted_output_type_3: def _parse_redacted_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -1049,6 +1073,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -1065,6 +1090,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -1074,6 +1100,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -1083,6 +1110,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -1099,6 +1127,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -1108,6 +1137,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1125,6 +1155,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -1134,6 +1165,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -1143,6 +1175,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -1166,11 +1199,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -1197,6 +1248,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -1208,15 +1260,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1225,7 +1279,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -1234,6 +1290,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -1255,6 +1312,7 @@ def _parse_metric_info(data: object) -> ExtendedWorkflowSpanRecordWithChildrenMe return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1272,6 +1330,7 @@ def _parse_files(data: object) -> ExtendedWorkflowSpanRecordWithChildrenFilesTyp return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1291,6 +1350,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) diff --git a/src/splunk_ao/resources/models/extended_workflow_span_record_with_children_metric_info_type_0.py b/src/splunk_ao/resources/models/extended_workflow_span_record_with_children_metric_info_type_0.py index 8f7049b2..c46171a1 100644 --- a/src/splunk_ao/resources/models/extended_workflow_span_record_with_children_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/extended_workflow_span_record_with_children_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/feedback_aggregate.py b/src/splunk_ao/resources/models/feedback_aggregate.py index fd318eec..7136c6c3 100644 --- a/src/splunk_ao/resources/models/feedback_aggregate.py +++ b/src/splunk_ao/resources/models/feedback_aggregate.py @@ -91,6 +91,7 @@ def _parse_aggregate( | TextAggregate | TreeChoiceAggregate ): + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/feedback_rating_info.py b/src/splunk_ao/resources/models/feedback_rating_info.py index 6a68c71e..e9eacba0 100644 --- a/src/splunk_ao/resources/models/feedback_rating_info.py +++ b/src/splunk_ao/resources/models/feedback_rating_info.py @@ -15,18 +15,23 @@ 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,9 +52,25 @@ 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: if not isinstance(data, list): raise TypeError() @@ -65,6 +86,7 @@ def _parse_value(data: object) -> bool | int | list[str] | str: def _parse_explanation(data: object) -> None | str: if data is None: return data + return cast(None | str, data) explanation = _parse_explanation(d.pop("explanation")) diff --git a/src/splunk_ao/resources/models/file_metadata.py b/src/splunk_ao/resources/models/file_metadata.py index f0629595..ee98a587 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,17 +119,60 @@ 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")) + + def _parse_status(data: object) -> FileStatus | str: + + try: + if not isinstance(data, str): + raise TypeError() + status_type_0 = FileStatus(data) - source = FileSource(d.pop("source")) + 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) content_type = _parse_content_type(d.pop("content_type", UNSET)) @@ -127,6 +182,7 @@ def _parse_url(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) url = _parse_url(d.pop("url", UNSET)) @@ -136,6 +192,7 @@ def _parse_url_expires_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -153,6 +210,7 @@ def _parse_size_bytes(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) size_bytes = _parse_size_bytes(d.pop("size_bytes", UNSET)) @@ -162,6 +220,7 @@ def _parse_filename(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) filename = _parse_filename(d.pop("filename", UNSET)) diff --git a/src/splunk_ao/resources/models/filter_leaf_log_records_filter.py b/src/splunk_ao/resources/models/filter_leaf_log_records_filter.py index e7d35e73..ce932bfc 100644 --- a/src/splunk_ao/resources/models/filter_leaf_log_records_filter.py +++ b/src/splunk_ao/resources/models/filter_leaf_log_records_filter.py @@ -91,6 +91,7 @@ def _parse_filter_( | LogRecordsNumberFilter | LogRecordsTextFilter ): + try: if not isinstance(data, dict): raise TypeError() 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 5caefe7e..99e46374 100644 --- a/src/splunk_ao/resources/models/fine_tuned_scorer_response.py +++ b/src/splunk_ao/resources/models/fine_tuned_scorer_response.py @@ -36,11 +36,11 @@ 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 (None | ScorerName | Unset): Executor pipeline. Defaults to finetuned scorer pipeline but can run + executor (None | ScorerName | str | Unset): Executor pipeline. Defaults to finetuned scorer pipeline but can run custom galileo score pipelines. """ @@ -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: None | ScorerName | Unset = UNSET + executor: None | ScorerName | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -177,15 +177,17 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -194,15 +196,18 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -211,7 +216,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)) @@ -227,6 +234,7 @@ def _parse_class_name_to_vocab_ix( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -253,11 +261,12 @@ 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) -> None | ScorerName | Unset: + def _parse_executor(data: object) -> None | ScorerName | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -266,7 +275,9 @@ def _parse_executor(data: object) -> None | ScorerName | Unset: return executor_type_0 except: # noqa: E722 pass - return cast(None | ScorerName | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for executor") + return cast(None | ScorerName | 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..494bb60c 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): @@ -53,13 +57,27 @@ def to_dict(self) -> dict[str, Any]: ground_truth = self.ground_truth + if ( + not isinstance(self.multimodal_capabilities, list) + and self.multimodal_capabilities is not None + and not isinstance(self.multimodal_capabilities, Unset) + ): + raise TypeError("Unexpected value type for multimodal_capabilities") + multimodal_capabilities: list[str] | None | Unset if isinstance(self.multimodal_capabilities, Unset): multimodal_capabilities = UNSET elif isinstance(self.multimodal_capabilities, list): + if not isinstance(self.multimodal_capabilities, list): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0") + 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 +110,23 @@ 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,25 +134,48 @@ 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): return data + if not isinstance(data, list) and data is not None and not isinstance(data, Unset): + raise TypeError("Unexpected value type for multimodal_capabilities") + try: if not isinstance(data, list): raise TypeError() multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data + if not isinstance(_multimodal_capabilities_type_0, list): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0") + 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..976bb434 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 @@ -60,11 +60,21 @@ def to_dict(self) -> dict[str, Any]: updated_at = self.updated_at.isoformat() + if not isinstance(self.scoreable_node_types, list) and self.scoreable_node_types is not None: + raise TypeError("Unexpected value type for scoreable_node_types") + scoreable_node_types: list[str] | None if isinstance(self.scoreable_node_types, list): + if not isinstance(self.scoreable_node_types, list): + raise TypeError("Unexpected value type for scoreable_node_types_type_0") + 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,23 +133,46 @@ 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 + if not isinstance(data, list) and data is not None: + raise TypeError("Unexpected value type for scoreable_node_types") + try: if not isinstance(data, list): raise TypeError() scoreable_node_types_type_0 = [] _scoreable_node_types_type_0 = data + if not isinstance(_scoreable_node_types_type_0, list): + raise TypeError("Unexpected value type for scoreable_node_types_type_0") + 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")) @@ -150,6 +183,7 @@ def _parse_instructions(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) instructions = _parse_instructions(d.pop("instructions", UNSET)) @@ -159,6 +193,7 @@ def _parse_user_prompt(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) user_prompt = _parse_user_prompt(d.pop("user_prompt", UNSET)) diff --git a/src/splunk_ao/resources/models/get_projects_paginated_response.py b/src/splunk_ao/resources/models/get_projects_paginated_response.py index 1cc0baef..602c0554 100644 --- a/src/splunk_ao/resources/models/get_projects_paginated_response.py +++ b/src/splunk_ao/resources/models/get_projects_paginated_response.py @@ -34,6 +34,7 @@ class GetProjectsPaginatedResponse: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + projects = [] for projects_item_data in self.projects: projects_item = projects_item_data.to_dict() @@ -72,6 +73,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) projects = [] _projects = d.pop("projects") + for projects_item_data in _projects: projects_item = ProjectDB.from_dict(projects_item_data) @@ -88,6 +90,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) diff --git a/src/splunk_ao/resources/models/get_projects_paginated_response_v2.py b/src/splunk_ao/resources/models/get_projects_paginated_response_v2.py index 4a7427f3..4f5ab6dd 100644 --- a/src/splunk_ao/resources/models/get_projects_paginated_response_v2.py +++ b/src/splunk_ao/resources/models/get_projects_paginated_response_v2.py @@ -37,6 +37,7 @@ class GetProjectsPaginatedResponseV2: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + projects = [] for projects_item_data in self.projects: projects_item = projects_item_data.to_dict() @@ -77,6 +78,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) projects = [] _projects = d.pop("projects") + for projects_item_data in _projects: projects_item = ProjectItem.from_dict(projects_item_data) @@ -95,6 +97,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) diff --git a/src/splunk_ao/resources/models/ground_truth_adherence_scorer.py b/src/splunk_ao/resources/models/ground_truth_adherence_scorer.py index 41f3ff54..e5076f94 100644 --- a/src/splunk_ao/resources/models/ground_truth_adherence_scorer.py +++ b/src/splunk_ao/resources/models/ground_truth_adherence_scorer.py @@ -107,14 +107,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() @@ -157,6 +160,7 @@ def _parse_model_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", UNSET)) @@ -166,6 +170,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) diff --git a/src/splunk_ao/resources/models/group_collaborator.py b/src/splunk_ao/resources/models/group_collaborator.py index 038e4a80..c4333503 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,21 @@ 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..a4bdffe9 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,23 @@ 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..31f4f02a 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 @@ -38,6 +38,7 @@ class HealthScoreResult: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + health_score_type: None | str if isinstance(self.health_score_type, HealthScoreType): health_score_type = self.health_score_type.value @@ -79,9 +80,10 @@ 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: if not isinstance(data, str): raise TypeError() @@ -90,13 +92,16 @@ 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")) def _parse_value(data: object) -> float | None: if data is None: return data + return cast(float | None, data) value = _parse_value(d.pop("value")) diff --git a/src/splunk_ao/resources/models/health_score_result_secondary.py b/src/splunk_ao/resources/models/health_score_result_secondary.py index 34325b26..70ba517f 100644 --- a/src/splunk_ao/resources/models/health_score_result_secondary.py +++ b/src/splunk_ao/resources/models/health_score_result_secondary.py @@ -34,6 +34,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_additional_property(data: object) -> float | None: if data is None: return data + return cast(float | None, data) additional_property = _parse_additional_property(prop_dict) diff --git a/src/splunk_ao/resources/models/histogram.py b/src/splunk_ao/resources/models/histogram.py index 6d2bd8ab..1231602c 100644 --- a/src/splunk_ao/resources/models/histogram.py +++ b/src/splunk_ao/resources/models/histogram.py @@ -19,20 +19,25 @@ 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,12 +59,28 @@ 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")) buckets = [] _buckets = d.pop("buckets") + for buckets_item_data in _buckets: buckets_item = HistogramBucket.from_dict(buckets_item_data) diff --git a/src/splunk_ao/resources/models/http_span.py b/src/splunk_ao/resources/models/http_span.py index 4925092a..b3e2913b 100644 --- a/src/splunk_ao/resources/models/http_span.py +++ b/src/splunk_ao/resources/models/http_span.py @@ -372,11 +372,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | list[Message] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: input_type_1_item = Message.from_dict(input_type_1_item_data) @@ -390,9 +392,11 @@ def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | lis raise TypeError() input_type_2 = [] _input_type_2 = data + for input_type_2_item_data in _input_type_2: def _parse_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -425,11 +429,13 @@ def _parse_redacted_input( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: redacted_input_type_1_item = Message.from_dict(redacted_input_type_1_item_data) @@ -443,9 +449,11 @@ def _parse_redacted_input( raise TypeError() redacted_input_type_2 = [] _redacted_input_type_2 = data + for redacted_input_type_2_item_data in _redacted_input_type_2: def _parse_redacted_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -478,6 +486,7 @@ def _parse_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -491,6 +500,7 @@ def _parse_output( raise TypeError() output_type_2 = [] _output_type_2 = data + for output_type_2_item_data in _output_type_2: output_type_2_item = Document.from_dict(output_type_2_item_data) @@ -504,9 +514,11 @@ def _parse_output( raise TypeError() output_type_3 = [] _output_type_3 = data + for output_type_3_item_data in _output_type_3: def _parse_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -550,6 +562,7 @@ def _parse_redacted_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -563,6 +576,7 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_2 = [] _redacted_output_type_2 = data + for redacted_output_type_2_item_data in _redacted_output_type_2: redacted_output_type_2_item = Document.from_dict(redacted_output_type_2_item_data) @@ -576,9 +590,11 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_3 = [] _redacted_output_type_3 = data + for redacted_output_type_3_item_data in _redacted_output_type_3: def _parse_redacted_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -638,6 +654,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -654,6 +671,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -663,6 +681,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -672,6 +691,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -688,6 +708,7 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) id = _parse_id(d.pop("id", UNSET)) @@ -697,6 +718,7 @@ def _parse_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_id = _parse_session_id(d.pop("session_id", UNSET)) @@ -706,6 +728,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -715,6 +738,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) @@ -724,6 +748,7 @@ def _parse_parent_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) parent_id = _parse_parent_id(d.pop("parent_id", UNSET)) @@ -739,6 +764,7 @@ def _parse_parent_id(data: object) -> None | str | Unset: def _parse_spans_item( data: object, ) -> AgentSpan | ControlSpan | HttpSpan | LlmSpan | RetrieverSpan | ToolSpan | WorkflowSpan: + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/image_generation_event.py b/src/splunk_ao/resources/models/image_generation_event.py index d868e9e0..2afba818 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 @@ -136,15 +136,17 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -153,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)) @@ -162,6 +166,7 @@ def _parse_metadata(data: object) -> ImageGenerationEventMetadataType0 | None | return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -179,6 +184,7 @@ def _parse_error_message(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) error_message = _parse_error_message(d.pop("error_message", UNSET)) @@ -188,6 +194,7 @@ def _parse_prompt(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) prompt = _parse_prompt(d.pop("prompt", UNSET)) @@ -197,11 +204,13 @@ def _parse_images(data: object) -> list[ImageGenerationEventImagesType0Item] | N return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() images_type_0 = [] _images_type_0 = data + for images_type_0_item_data in _images_type_0: images_type_0_item = ImageGenerationEventImagesType0Item.from_dict(images_type_0_item_data) @@ -219,6 +228,7 @@ def _parse_model(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model = _parse_model(d.pop("model", UNSET)) diff --git a/src/splunk_ao/resources/models/input_pii_scorer.py b/src/splunk_ao/resources/models/input_pii_scorer.py index 8a7848ff..a4e25720 100644 --- a/src/splunk_ao/resources/models/input_pii_scorer.py +++ b/src/splunk_ao/resources/models/input_pii_scorer.py @@ -81,14 +81,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/input_sexist_scorer.py b/src/splunk_ao/resources/models/input_sexist_scorer.py index 59077890..1ffa2789 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): @@ -110,14 +114,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() @@ -151,18 +158,30 @@ 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", UNSET)) @@ -172,6 +191,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) diff --git a/src/splunk_ao/resources/models/input_tone_scorer.py b/src/splunk_ao/resources/models/input_tone_scorer.py index 9c3a4010..c19dfe19 100644 --- a/src/splunk_ao/resources/models/input_tone_scorer.py +++ b/src/splunk_ao/resources/models/input_tone_scorer.py @@ -81,14 +81,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/input_toxicity_scorer.py b/src/splunk_ao/resources/models/input_toxicity_scorer.py index 1de69ccb..2d2f93ab 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): @@ -110,14 +114,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() @@ -151,18 +158,30 @@ 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", UNSET)) @@ -172,6 +191,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) diff --git a/src/splunk_ao/resources/models/insight_summary.py b/src/splunk_ao/resources/models/insight_summary.py index f40c0b8f..d4a93009 100644 --- a/src/splunk_ao/resources/models/insight_summary.py +++ b/src/splunk_ao/resources/models/insight_summary.py @@ -23,8 +23,8 @@ class InsightSummary: details (str): suggested_action (str): priority (int): - priority_category (InsightSummaryPriorityCategoryType0 | None | Unset): - label (InsightSummaryLabelType0 | None | Unset): + priority_category (InsightSummaryPriorityCategoryType0 | None | str | Unset): + label (InsightSummaryLabelType0 | None | str | Unset): """ id: str @@ -33,8 +33,8 @@ class InsightSummary: details: str suggested_action: str priority: int - priority_category: InsightSummaryPriorityCategoryType0 | None | Unset = UNSET - label: InsightSummaryLabelType0 | None | Unset = UNSET + priority_category: InsightSummaryPriorityCategoryType0 | None | str | Unset = UNSET + label: InsightSummaryLabelType0 | None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -100,37 +100,43 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() - priority_category_type_0 = InsightSummaryPriorityCategoryType0(data) + priority_category_priority_category_type_0 = InsightSummaryPriorityCategoryType0(data) - return priority_category_type_0 + return priority_category_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)) - def _parse_label(data: object) -> InsightSummaryLabelType0 | None | Unset: + def _parse_label(data: object) -> InsightSummaryLabelType0 | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() - label_type_0 = InsightSummaryLabelType0(data) + label_label_type_0 = InsightSummaryLabelType0(data) - return label_type_0 + return label_label_type_0 except: # noqa: E722 pass - return cast(InsightSummaryLabelType0 | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for label") + return cast(InsightSummaryLabelType0 | None | str | Unset, data) label = _parse_label(d.pop("label", UNSET)) diff --git a/src/splunk_ao/resources/models/instruction_adherence_scorer.py b/src/splunk_ao/resources/models/instruction_adherence_scorer.py index 86a29165..9afba6c1 100644 --- a/src/splunk_ao/resources/models/instruction_adherence_scorer.py +++ b/src/splunk_ao/resources/models/instruction_adherence_scorer.py @@ -107,14 +107,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() @@ -157,6 +160,7 @@ def _parse_model_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", UNSET)) @@ -166,6 +170,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) diff --git a/src/splunk_ao/resources/models/integration_db.py b/src/splunk_ao/resources/models/integration_db.py index 087b0372..0fa98098 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,21 @@ 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..742cfebf 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,21 @@ 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..e9d042f6 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 @@ -137,15 +137,17 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -154,7 +156,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)) @@ -163,6 +167,7 @@ def _parse_metadata(data: object) -> InternalToolCallMetadataType0 | None | Unse return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -180,6 +185,7 @@ def _parse_error_message(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) error_message = _parse_error_message(d.pop("error_message", UNSET)) @@ -189,6 +195,7 @@ def _parse_input_(data: object) -> InternalToolCallInputType0 | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -206,6 +213,7 @@ def _parse_output(data: object) -> InternalToolCallOutputType0 | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/invoke_response.py b/src/splunk_ao/resources/models/invoke_response.py index ffa11063..da946467 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,23 @@ 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) @@ -171,6 +186,7 @@ def _parse_metadata(data: object) -> InvokeResponseMetadataType0 | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -188,6 +204,7 @@ def _parse_headers(data: object) -> InvokeResponseHeadersType0 | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/job_progress.py b/src/splunk_ao/resources/models/job_progress.py index ca41226d..74161a6c 100644 --- a/src/splunk_ao/resources/models/job_progress.py +++ b/src/splunk_ao/resources/models/job_progress.py @@ -26,6 +26,7 @@ class JobProgress: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + progress_message: None | str | Unset if isinstance(self.progress_message, Unset): progress_message = UNSET @@ -65,6 +66,7 @@ def _parse_progress_message(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) progress_message = _parse_progress_message(d.pop("progress_message", UNSET)) @@ -74,6 +76,7 @@ def _parse_steps_completed(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) steps_completed = _parse_steps_completed(d.pop("steps_completed", UNSET)) @@ -83,6 +86,7 @@ def _parse_steps_total(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) steps_total = _parse_steps_total(d.pop("steps_total", UNSET)) diff --git a/src/splunk_ao/resources/models/list_annotation_queue_collaborators_response.py b/src/splunk_ao/resources/models/list_annotation_queue_collaborators_response.py index dc64dadc..b28730ed 100644 --- a/src/splunk_ao/resources/models/list_annotation_queue_collaborators_response.py +++ b/src/splunk_ao/resources/models/list_annotation_queue_collaborators_response.py @@ -34,6 +34,7 @@ class ListAnnotationQueueCollaboratorsResponse: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + collaborators = [] for collaborators_item_data in self.collaborators: collaborators_item = collaborators_item_data.to_dict() @@ -72,6 +73,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) collaborators = [] _collaborators = d.pop("collaborators") + for collaborators_item_data in _collaborators: collaborators_item = UserAnnotationQueueCollaborator.from_dict(collaborators_item_data) @@ -88,6 +90,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) diff --git a/src/splunk_ao/resources/models/list_annotation_queue_params.py b/src/splunk_ao/resources/models/list_annotation_queue_params.py index 649f798e..abf90eee 100644 --- a/src/splunk_ao/resources/models/list_annotation_queue_params.py +++ b/src/splunk_ao/resources/models/list_annotation_queue_params.py @@ -216,6 +216,7 @@ def _parse_filters_item( | AnnotationQueueProjectFilter | AnnotationQueueUpdatedAtFilter ): + try: if not isinstance(data, dict): raise TypeError() @@ -317,6 +318,7 @@ def _parse_sort( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/list_annotation_queue_response.py b/src/splunk_ao/resources/models/list_annotation_queue_response.py index ebf214f3..755f1c48 100644 --- a/src/splunk_ao/resources/models/list_annotation_queue_response.py +++ b/src/splunk_ao/resources/models/list_annotation_queue_response.py @@ -34,6 +34,7 @@ class ListAnnotationQueueResponse: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + annotation_queues = [] for annotation_queues_item_data in self.annotation_queues: annotation_queues_item = annotation_queues_item_data.to_dict() @@ -72,6 +73,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) annotation_queues = [] _annotation_queues = d.pop("annotation_queues") + for annotation_queues_item_data in _annotation_queues: annotation_queues_item = AnnotationQueueResponse.from_dict(annotation_queues_item_data) @@ -88,6 +90,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) diff --git a/src/splunk_ao/resources/models/list_dataset_params.py b/src/splunk_ao/resources/models/list_dataset_params.py index 6b05b080..f5596576 100644 --- a/src/splunk_ao/resources/models/list_dataset_params.py +++ b/src/splunk_ao/resources/models/list_dataset_params.py @@ -160,6 +160,7 @@ def _parse_filters_item( | DatasetNotInProjectFilter | DatasetUsedInProjectFilter ): + try: if not isinstance(data, dict): raise TypeError() @@ -219,6 +220,7 @@ def _parse_sort( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/list_dataset_projects_response.py b/src/splunk_ao/resources/models/list_dataset_projects_response.py index bf3a9f11..edebe4b1 100644 --- a/src/splunk_ao/resources/models/list_dataset_projects_response.py +++ b/src/splunk_ao/resources/models/list_dataset_projects_response.py @@ -85,6 +85,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) diff --git a/src/splunk_ao/resources/models/list_dataset_response.py b/src/splunk_ao/resources/models/list_dataset_response.py index 88dc1354..91308ff4 100644 --- a/src/splunk_ao/resources/models/list_dataset_response.py +++ b/src/splunk_ao/resources/models/list_dataset_response.py @@ -85,6 +85,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) diff --git a/src/splunk_ao/resources/models/list_dataset_version_params.py b/src/splunk_ao/resources/models/list_dataset_version_params.py index 21508ebb..4c6b26d1 100644 --- a/src/splunk_ao/resources/models/list_dataset_version_params.py +++ b/src/splunk_ao/resources/models/list_dataset_version_params.py @@ -55,6 +55,7 @@ def _parse_sort(data: object) -> DatasetVersionIndexSort | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/list_dataset_version_response.py b/src/splunk_ao/resources/models/list_dataset_version_response.py index b7c8f50f..99e2af70 100644 --- a/src/splunk_ao/resources/models/list_dataset_version_response.py +++ b/src/splunk_ao/resources/models/list_dataset_version_response.py @@ -34,6 +34,7 @@ class ListDatasetVersionResponse: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + versions = [] for versions_item_data in self.versions: versions_item = versions_item_data.to_dict() @@ -72,6 +73,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) versions = [] _versions = d.pop("versions") + for versions_item_data in _versions: versions_item = DatasetVersionDB.from_dict(versions_item_data) @@ -88,6 +90,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) diff --git a/src/splunk_ao/resources/models/list_experiment_response.py b/src/splunk_ao/resources/models/list_experiment_response.py index 70cf3435..5f0d3300 100644 --- a/src/splunk_ao/resources/models/list_experiment_response.py +++ b/src/splunk_ao/resources/models/list_experiment_response.py @@ -85,6 +85,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) diff --git a/src/splunk_ao/resources/models/list_group_collaborators_response.py b/src/splunk_ao/resources/models/list_group_collaborators_response.py index 9cb795c5..69504d76 100644 --- a/src/splunk_ao/resources/models/list_group_collaborators_response.py +++ b/src/splunk_ao/resources/models/list_group_collaborators_response.py @@ -34,6 +34,7 @@ class ListGroupCollaboratorsResponse: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + collaborators = [] for collaborators_item_data in self.collaborators: collaborators_item = collaborators_item_data.to_dict() @@ -72,6 +73,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) collaborators = [] _collaborators = d.pop("collaborators") + for collaborators_item_data in _collaborators: collaborators_item = GroupCollaborator.from_dict(collaborators_item_data) @@ -88,6 +90,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) diff --git a/src/splunk_ao/resources/models/list_log_stream_response.py b/src/splunk_ao/resources/models/list_log_stream_response.py index 8bdee1ef..7b635500 100644 --- a/src/splunk_ao/resources/models/list_log_stream_response.py +++ b/src/splunk_ao/resources/models/list_log_stream_response.py @@ -34,6 +34,7 @@ class ListLogStreamResponse: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + log_streams = [] for log_streams_item_data in self.log_streams: log_streams_item = log_streams_item_data.to_dict() @@ -72,6 +73,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) log_streams = [] _log_streams = d.pop("log_streams") + for log_streams_item_data in _log_streams: log_streams_item = LogStreamResponse.from_dict(log_streams_item_data) @@ -88,6 +90,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) diff --git a/src/splunk_ao/resources/models/list_project_group_collaborators_response.py b/src/splunk_ao/resources/models/list_project_group_collaborators_response.py index 40531da0..16da3550 100644 --- a/src/splunk_ao/resources/models/list_project_group_collaborators_response.py +++ b/src/splunk_ao/resources/models/list_project_group_collaborators_response.py @@ -34,6 +34,7 @@ class ListProjectGroupCollaboratorsResponse: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + collaborators = [] for collaborators_item_data in self.collaborators: collaborators_item = collaborators_item_data.to_dict() @@ -72,6 +73,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) collaborators = [] _collaborators = d.pop("collaborators") + for collaborators_item_data in _collaborators: collaborators_item = ProjectGroupCollaborator.from_dict(collaborators_item_data) @@ -88,6 +90,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) diff --git a/src/splunk_ao/resources/models/list_project_user_collaborators_response.py b/src/splunk_ao/resources/models/list_project_user_collaborators_response.py index 4e4996fc..758f7c53 100644 --- a/src/splunk_ao/resources/models/list_project_user_collaborators_response.py +++ b/src/splunk_ao/resources/models/list_project_user_collaborators_response.py @@ -34,6 +34,7 @@ class ListProjectUserCollaboratorsResponse: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + collaborators = [] for collaborators_item_data in self.collaborators: collaborators_item = collaborators_item_data.to_dict() @@ -72,6 +73,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) collaborators = [] _collaborators = d.pop("collaborators") + for collaborators_item_data in _collaborators: collaborators_item = ProjectUserCollaborator.from_dict(collaborators_item_data) @@ -88,6 +90,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) diff --git a/src/splunk_ao/resources/models/list_prompt_template_params.py b/src/splunk_ao/resources/models/list_prompt_template_params.py index d41c83ce..970f3ac9 100644 --- a/src/splunk_ao/resources/models/list_prompt_template_params.py +++ b/src/splunk_ao/resources/models/list_prompt_template_params.py @@ -122,6 +122,7 @@ def _parse_filters_item( | PromptTemplateNotInProjectFilter | PromptTemplateUsedInProjectFilter ): + try: if not isinstance(data, dict): raise TypeError() @@ -163,6 +164,7 @@ def _parse_sort( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/list_prompt_template_response.py b/src/splunk_ao/resources/models/list_prompt_template_response.py index fab7a289..a11ef8a9 100644 --- a/src/splunk_ao/resources/models/list_prompt_template_response.py +++ b/src/splunk_ao/resources/models/list_prompt_template_response.py @@ -85,6 +85,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) diff --git a/src/splunk_ao/resources/models/list_prompt_template_version_params.py b/src/splunk_ao/resources/models/list_prompt_template_version_params.py index a4e6aa01..18af2d2d 100644 --- a/src/splunk_ao/resources/models/list_prompt_template_version_params.py +++ b/src/splunk_ao/resources/models/list_prompt_template_version_params.py @@ -80,6 +80,7 @@ def _parse_sort( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/list_prompt_template_version_response.py b/src/splunk_ao/resources/models/list_prompt_template_version_response.py index 23d274c0..d4ee2c9c 100644 --- a/src/splunk_ao/resources/models/list_prompt_template_version_response.py +++ b/src/splunk_ao/resources/models/list_prompt_template_version_response.py @@ -85,6 +85,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) diff --git a/src/splunk_ao/resources/models/list_scorer_versions_response.py b/src/splunk_ao/resources/models/list_scorer_versions_response.py index ed3f89b6..acca894a 100644 --- a/src/splunk_ao/resources/models/list_scorer_versions_response.py +++ b/src/splunk_ao/resources/models/list_scorer_versions_response.py @@ -85,6 +85,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) diff --git a/src/splunk_ao/resources/models/list_scorers_request.py b/src/splunk_ao/resources/models/list_scorers_request.py index f5f41c09..5120aba5 100644 --- a/src/splunk_ao/resources/models/list_scorers_request.py +++ b/src/splunk_ao/resources/models/list_scorers_request.py @@ -228,6 +228,7 @@ def _parse_filters_item( | ScorerTypeFilter | ScorerUpdatedAtFilter ): + try: if not isinstance(data, dict): raise TypeError() @@ -367,6 +368,7 @@ def _parse_sort( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/list_scorers_response.py b/src/splunk_ao/resources/models/list_scorers_response.py index e41b8928..e9cf86d4 100644 --- a/src/splunk_ao/resources/models/list_scorers_response.py +++ b/src/splunk_ao/resources/models/list_scorers_response.py @@ -85,6 +85,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) diff --git a/src/splunk_ao/resources/models/list_stage_response.py b/src/splunk_ao/resources/models/list_stage_response.py index e4fe2b5b..8237a17b 100644 --- a/src/splunk_ao/resources/models/list_stage_response.py +++ b/src/splunk_ao/resources/models/list_stage_response.py @@ -34,6 +34,7 @@ class ListStageResponse: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + stages = [] for stages_item_data in self.stages: stages_item = stages_item_data.to_dict() @@ -72,6 +73,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) stages = [] _stages = d.pop("stages") + for stages_item_data in _stages: stages_item = StageDB.from_dict(stages_item_data) @@ -88,6 +90,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) diff --git a/src/splunk_ao/resources/models/list_user_collaborators_response.py b/src/splunk_ao/resources/models/list_user_collaborators_response.py index c43ac43e..7375e5e3 100644 --- a/src/splunk_ao/resources/models/list_user_collaborators_response.py +++ b/src/splunk_ao/resources/models/list_user_collaborators_response.py @@ -34,6 +34,7 @@ class ListUserCollaboratorsResponse: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + collaborators = [] for collaborators_item_data in self.collaborators: collaborators_item = collaborators_item_data.to_dict() @@ -72,6 +73,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) collaborators = [] _collaborators = d.pop("collaborators") + for collaborators_item_data in _collaborators: collaborators_item = UserCollaborator.from_dict(collaborators_item_data) @@ -88,6 +90,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) diff --git a/src/splunk_ao/resources/models/llm_metrics.py b/src/splunk_ao/resources/models/llm_metrics.py index 913e9b5d..f03f758b 100644 --- a/src/splunk_ao/resources/models/llm_metrics.py +++ b/src/splunk_ao/resources/models/llm_metrics.py @@ -39,6 +39,7 @@ class LlmMetrics: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + duration_ns: int | None | Unset if isinstance(self.duration_ns, Unset): duration_ns = UNSET @@ -126,6 +127,7 @@ def _parse_duration_ns(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) duration_ns = _parse_duration_ns(d.pop("duration_ns", UNSET)) @@ -135,6 +137,7 @@ def _parse_num_input_tokens(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_input_tokens = _parse_num_input_tokens(d.pop("num_input_tokens", UNSET)) @@ -144,6 +147,7 @@ def _parse_num_output_tokens(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_output_tokens = _parse_num_output_tokens(d.pop("num_output_tokens", UNSET)) @@ -153,6 +157,7 @@ def _parse_num_total_tokens(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_total_tokens = _parse_num_total_tokens(d.pop("num_total_tokens", UNSET)) @@ -162,6 +167,7 @@ def _parse_time_to_first_token_ns(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) time_to_first_token_ns = _parse_time_to_first_token_ns(d.pop("time_to_first_token_ns", UNSET)) @@ -171,6 +177,7 @@ def _parse_num_image_input_tokens(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_image_input_tokens = _parse_num_image_input_tokens(d.pop("num_image_input_tokens", UNSET)) @@ -180,6 +187,7 @@ def _parse_num_audio_input_tokens(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_audio_input_tokens = _parse_num_audio_input_tokens(d.pop("num_audio_input_tokens", UNSET)) @@ -189,6 +197,7 @@ def _parse_num_audio_output_tokens(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_audio_output_tokens = _parse_num_audio_output_tokens(d.pop("num_audio_output_tokens", UNSET)) @@ -198,6 +207,7 @@ def _parse_num_image_output_tokens(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_image_output_tokens = _parse_num_image_output_tokens(d.pop("num_image_output_tokens", UNSET)) diff --git a/src/splunk_ao/resources/models/llm_span.py b/src/splunk_ao/resources/models/llm_span.py index d4c0f320..2f953897 100644 --- a/src/splunk_ao/resources/models/llm_span.py +++ b/src/splunk_ao/resources/models/llm_span.py @@ -380,11 +380,13 @@ def _parse_redacted_input(data: object) -> list[Message] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_0 = [] _redacted_input_type_0 = data + for redacted_input_type_0_item_data in _redacted_input_type_0: redacted_input_type_0_item = Message.from_dict(redacted_input_type_0_item_data) @@ -409,6 +411,7 @@ def _parse_redacted_output(data: object) -> Message | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -444,6 +447,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -460,6 +464,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -469,6 +474,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -478,6 +484,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -494,6 +501,7 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) id = _parse_id(d.pop("id", UNSET)) @@ -503,6 +511,7 @@ def _parse_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_id = _parse_session_id(d.pop("session_id", UNSET)) @@ -512,6 +521,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -521,6 +531,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) @@ -530,6 +541,7 @@ def _parse_parent_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) parent_id = _parse_parent_id(d.pop("parent_id", UNSET)) @@ -539,11 +551,13 @@ def _parse_tools(data: object) -> list[LlmSpanToolsType0Item] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() tools_type_0 = [] _tools_type_0 = data + for tools_type_0_item_data in _tools_type_0: tools_type_0_item = LlmSpanToolsType0Item.from_dict(tools_type_0_item_data) @@ -576,11 +590,13 @@ def _parse_events( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() events_type_0 = [] _events_type_0 = data + for events_type_0_item_data in _events_type_0: def _parse_events_type_0_item( @@ -595,6 +611,7 @@ def _parse_events_type_0_item( | ReasoningEvent | WebSearchCallEvent ): + try: if not isinstance(data, dict): raise TypeError() @@ -687,6 +704,7 @@ def _parse_model(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model = _parse_model(d.pop("model", UNSET)) @@ -696,6 +714,7 @@ def _parse_provider(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) provider = _parse_provider(d.pop("provider", UNSET)) @@ -705,6 +724,7 @@ def _parse_temperature(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) temperature = _parse_temperature(d.pop("temperature", UNSET)) @@ -714,6 +734,7 @@ def _parse_finish_reason(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) finish_reason = _parse_finish_reason(d.pop("finish_reason", UNSET)) diff --git a/src/splunk_ao/resources/models/log_records_available_columns_request.py b/src/splunk_ao/resources/models/log_records_available_columns_request.py index 603f2327..73f7497b 100644 --- a/src/splunk_ao/resources/models/log_records_available_columns_request.py +++ b/src/splunk_ao/resources/models/log_records_available_columns_request.py @@ -31,6 +31,7 @@ class LogRecordsAvailableColumnsRequest: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + log_stream_id: None | str | Unset if isinstance(self.log_stream_id, Unset): log_stream_id = UNSET @@ -90,6 +91,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -99,6 +101,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -108,6 +111,7 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) @@ -117,6 +121,7 @@ def _parse_start_time(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -134,6 +139,7 @@ def _parse_end_time(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() 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..f943191e 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,23 @@ 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..bad87f1a 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,9 +65,24 @@ 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: if not isinstance(data, list): raise TypeError() 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 6c4fec23..25403fb6 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'). @@ -51,34 +51,34 @@ class LogRecordsColumnInfo: 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. - label_color (LogRecordsColumnInfoLabelColorType0 | None | Unset): Type of label color for the column, if this is - a multilabel metric column. + insight_type (InsightType | None | str | Unset): Insight type. + filter_type (LogRecordsFilterType | None | str | Unset): Filter type. + 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 threshold: MetricThreshold | None | Unset = UNSET scorer_config: None | RuntimeScorerConfig | Unset = UNSET scorer_id: None | str | Unset = UNSET - insight_type: InsightType | None | Unset = UNSET - filter_type: LogRecordsFilterType | None | Unset = UNSET - label_color: LogRecordsColumnInfoLabelColorType0 | None | Unset = UNSET + insight_type: InsightType | None | str | Unset = UNSET + filter_type: LogRecordsFilterType | None | str | 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]: @@ -87,7 +87,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): @@ -140,9 +144,16 @@ def to_dict(self) -> dict[str, Any]: applicable_types: list[str] | Unset = UNSET if not isinstance(self.applicable_types, Unset): + if not isinstance(self.applicable_types, list): + raise TypeError("Unexpected value type for applicable_types") + 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 @@ -257,11 +268,26 @@ 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: if not isinstance(data, str): raise TypeError() @@ -270,7 +296,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")) @@ -279,6 +307,7 @@ def _parse_label(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) label = _parse_label(d.pop("label", UNSET)) @@ -288,6 +317,7 @@ def _parse_description(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) description = _parse_description(d.pop("description", UNSET)) @@ -297,15 +327,17 @@ def _parse_group_label(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -314,7 +346,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)) @@ -325,6 +359,7 @@ def _parse_allowed_values(data: object) -> list[Any] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -344,11 +379,29 @@ 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: + if not isinstance(_applicable_types, list): + raise TypeError("Unexpected value type for applicable_types") + 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) @@ -359,6 +412,7 @@ def _parse_roll_up_method(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) roll_up_method = _parse_roll_up_method(d.pop("roll_up_method", UNSET)) @@ -368,6 +422,7 @@ def _parse_metric_key_alias(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metric_key_alias = _parse_metric_key_alias(d.pop("metric_key_alias", UNSET)) @@ -377,6 +432,7 @@ def _parse_threshold(data: object) -> MetricThreshold | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -394,6 +450,7 @@ def _parse_scorer_config(data: object) -> None | RuntimeScorerConfig | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -411,15 +468,17 @@ def _parse_scorer_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -428,15 +487,18 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -445,24 +507,29 @@ 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)) - 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): return data + try: if not isinstance(data, str): raise TypeError() - label_color_type_0 = LogRecordsColumnInfoLabelColorType0(data) + label_color_label_color_type_0 = LogRecordsColumnInfoLabelColorType0(data) - return label_color_type_0 + return label_color_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_custom_metrics_query_request.py b/src/splunk_ao/resources/models/log_records_custom_metrics_query_request.py index 877ea3e3..3711c155 100644 --- a/src/splunk_ao/resources/models/log_records_custom_metrics_query_request.py +++ b/src/splunk_ao/resources/models/log_records_custom_metrics_query_request.py @@ -143,6 +143,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: metric_details = [] _metric_details = d.pop("metric_details") + for metric_details_item_data in _metric_details: metric_details_item = MetricAggregationDetail.from_dict(metric_details_item_data) @@ -153,6 +154,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -162,6 +164,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -171,6 +174,7 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) @@ -189,6 +193,7 @@ def _parse_filter_tree( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -248,6 +253,7 @@ def _parse_group_by(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) group_by = _parse_group_by(d.pop("group_by", 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..e1dad9b6 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,21 @@ 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_delete_request.py b/src/splunk_ao/resources/models/log_records_delete_request.py index 02c56e4e..89956680 100644 --- a/src/splunk_ao/resources/models/log_records_delete_request.py +++ b/src/splunk_ao/resources/models/log_records_delete_request.py @@ -170,6 +170,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -179,6 +180,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -188,6 +190,7 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) @@ -220,6 +223,7 @@ def _parse_filters_item( | LogRecordsNumberFilter | LogRecordsTextFilter ): + try: if not isinstance(data, dict): raise TypeError() @@ -292,6 +296,7 @@ def _parse_filter_tree( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() 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..ca5d19e1 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,13 +208,29 @@ 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: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -222,12 +243,23 @@ 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) @@ -236,6 +268,7 @@ def _parse_file_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) file_name = _parse_file_name(d.pop("file_name", UNSET)) @@ -247,6 +280,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -256,6 +290,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -265,6 +300,7 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) @@ -297,6 +333,7 @@ def _parse_filters_item( | LogRecordsNumberFilter | LogRecordsTextFilter ): + try: if not isinstance(data, dict): raise TypeError() @@ -360,6 +397,7 @@ def _parse_sort(data: object) -> LogRecordsSortClause | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/log_records_fully_annotated_filter.py b/src/splunk_ao/resources/models/log_records_fully_annotated_filter.py index b4c0c2c5..1d2c86c8 100644 --- a/src/splunk_ao/resources/models/log_records_fully_annotated_filter.py +++ b/src/splunk_ao/resources/models/log_records_fully_annotated_filter.py @@ -70,6 +70,7 @@ def _parse_user_ids(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() 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..b9463605 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_ @@ -64,14 +68,17 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: column_id = d.pop("column_id") def _parse_value(data: object) -> list[str] | str: + try: if not isinstance(data, list): raise TypeError() value_type_1 = [] _value_type_1 = data + for value_type_1_item_data in _value_type_1: def _parse_value_type_1_item(data: object) -> str: + return cast(str, data) value_type_1_item = _parse_value_type_1_item(value_type_1_item_data) @@ -85,12 +92,23 @@ 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_metrics_query_request.py b/src/splunk_ao/resources/models/log_records_metrics_query_request.py index 929921b3..ae8a2716 100644 --- a/src/splunk_ao/resources/models/log_records_metrics_query_request.py +++ b/src/splunk_ao/resources/models/log_records_metrics_query_request.py @@ -156,6 +156,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -165,6 +166,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -174,6 +176,7 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) @@ -206,6 +209,7 @@ def _parse_filters_item( | LogRecordsNumberFilter | LogRecordsTextFilter ): + try: if not isinstance(data, dict): raise TypeError() @@ -271,6 +275,7 @@ def _parse_group_by(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) group_by = _parse_group_by(d.pop("group_by", UNSET)) diff --git a/src/splunk_ao/resources/models/log_records_metrics_response.py b/src/splunk_ao/resources/models/log_records_metrics_response.py index 680753c3..e451f688 100644 --- a/src/splunk_ao/resources/models/log_records_metrics_response.py +++ b/src/splunk_ao/resources/models/log_records_metrics_response.py @@ -98,6 +98,7 @@ def _parse_standard_errors(data: object) -> LogRecordsMetricsResponseStandardErr return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/log_records_metrics_response_aggregate_metrics.py b/src/splunk_ao/resources/models/log_records_metrics_response_aggregate_metrics.py index 713d61cb..d4216a30 100644 --- a/src/splunk_ao/resources/models/log_records_metrics_response_aggregate_metrics.py +++ b/src/splunk_ao/resources/models/log_records_metrics_response_aggregate_metrics.py @@ -52,6 +52,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_additional_property( data: object, ) -> float | int | LogRecordsMetricsResponseAggregateMetricsAdditionalPropertyType2: + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/log_records_metrics_response_bucketed_metrics.py b/src/splunk_ao/resources/models/log_records_metrics_response_bucketed_metrics.py index dcb98da3..3ef04d1c 100644 --- a/src/splunk_ao/resources/models/log_records_metrics_response_bucketed_metrics.py +++ b/src/splunk_ao/resources/models/log_records_metrics_response_bucketed_metrics.py @@ -41,6 +41,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: for prop_name, prop_dict in d.items(): additional_property = [] _additional_property = prop_dict + for additional_property_item_data in _additional_property: additional_property_item = BucketedMetrics.from_dict(additional_property_item_data) 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..c8dbc9e3 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,9 +62,24 @@ 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: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/log_records_partial_query_request.py b/src/splunk_ao/resources/models/log_records_partial_query_request.py index 561aa2c4..d4000de6 100644 --- a/src/splunk_ao/resources/models/log_records_partial_query_request.py +++ b/src/splunk_ao/resources/models/log_records_partial_query_request.py @@ -238,6 +238,7 @@ def _parse_previous_last_row_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) previous_last_row_id = _parse_previous_last_row_id(d.pop("previous_last_row_id", UNSET)) @@ -247,6 +248,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -256,6 +258,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -265,6 +268,7 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) @@ -297,6 +301,7 @@ def _parse_filters_item( | LogRecordsNumberFilter | LogRecordsTextFilter ): + try: if not isinstance(data, dict): raise TypeError() @@ -369,6 +374,7 @@ def _parse_filter_tree( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -426,6 +432,7 @@ def _parse_sort(data: object) -> LogRecordsSortClause | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/log_records_partial_query_response.py b/src/splunk_ao/resources/models/log_records_partial_query_response.py index df4ac97c..205013b5 100644 --- a/src/splunk_ao/resources/models/log_records_partial_query_response.py +++ b/src/splunk_ao/resources/models/log_records_partial_query_response.py @@ -155,6 +155,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) @@ -164,6 +165,7 @@ def _parse_last_row_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) last_row_id = _parse_last_row_id(d.pop("last_row_id", UNSET)) @@ -200,6 +202,7 @@ def _parse_records_item( | PartialExtendedTraceRecord | PartialExtendedWorkflowSpanRecord ): + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") diff --git a/src/splunk_ao/resources/models/log_records_query_count_request.py b/src/splunk_ao/resources/models/log_records_query_count_request.py index 542d2be7..8612f28f 100644 --- a/src/splunk_ao/resources/models/log_records_query_count_request.py +++ b/src/splunk_ao/resources/models/log_records_query_count_request.py @@ -170,6 +170,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -179,6 +180,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -188,6 +190,7 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) @@ -220,6 +223,7 @@ def _parse_filters_item( | LogRecordsNumberFilter | LogRecordsTextFilter ): + try: if not isinstance(data, dict): raise TypeError() @@ -292,6 +296,7 @@ def _parse_filter_tree( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/log_records_query_request.py b/src/splunk_ao/resources/models/log_records_query_request.py index b31e3037..314e4522 100644 --- a/src/splunk_ao/resources/models/log_records_query_request.py +++ b/src/splunk_ao/resources/models/log_records_query_request.py @@ -229,6 +229,7 @@ def _parse_previous_last_row_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) previous_last_row_id = _parse_previous_last_row_id(d.pop("previous_last_row_id", UNSET)) @@ -238,6 +239,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -247,6 +249,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -256,6 +259,7 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) @@ -288,6 +292,7 @@ def _parse_filters_item( | LogRecordsNumberFilter | LogRecordsTextFilter ): + try: if not isinstance(data, dict): raise TypeError() @@ -360,6 +365,7 @@ def _parse_filter_tree( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -417,6 +423,7 @@ def _parse_sort(data: object) -> LogRecordsSortClause | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/log_records_query_response.py b/src/splunk_ao/resources/models/log_records_query_response.py index 44660cfb..06e6f33c 100644 --- a/src/splunk_ao/resources/models/log_records_query_response.py +++ b/src/splunk_ao/resources/models/log_records_query_response.py @@ -147,6 +147,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) @@ -156,6 +157,7 @@ def _parse_last_row_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) last_row_id = _parse_last_row_id(d.pop("last_row_id", UNSET)) @@ -192,6 +194,7 @@ def _parse_records_item( | ExtendedTraceRecord | ExtendedWorkflowSpanRecord ): + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") 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..e3b40389 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,9 +65,24 @@ 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: if not isinstance(data, list): raise TypeError() 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 632cae5d..ab8f9f8b 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 @@ -51,7 +51,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 @@ -88,9 +88,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): @@ -215,6 +219,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -224,6 +229,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -233,22 +239,35 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) client_version = _parse_client_version(d.pop("client_version", UNSET)) @@ -260,11 +279,13 @@ def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | lis return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: input_type_1_item = Message.from_dict(input_type_1_item_data) @@ -278,9 +299,11 @@ def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | lis raise TypeError() input_type_2 = [] _input_type_2 = data + for input_type_2_item_data in _input_type_2: def _parse_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -313,6 +336,7 @@ def _parse_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -326,6 +350,7 @@ def _parse_output( raise TypeError() output_type_2 = [] _output_type_2 = data + for output_type_2_item_data in _output_type_2: output_type_2_item = Document.from_dict(output_type_2_item_data) @@ -339,9 +364,11 @@ def _parse_output( raise TypeError() output_type_3 = [] _output_type_3 = data + for output_type_3_item_data in _output_type_3: def _parse_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -383,6 +410,7 @@ def _parse_tags(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -400,6 +428,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -409,6 +438,7 @@ def _parse_duration_ns(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) duration_ns = _parse_duration_ns(d.pop("duration_ns", UNSET)) diff --git a/src/splunk_ao/resources/models/log_span_update_response.py b/src/splunk_ao/resources/models/log_span_update_response.py index a10a681f..a5dff1af 100644 --- a/src/splunk_ao/resources/models/log_span_update_response.py +++ b/src/splunk_ao/resources/models/log_span_update_response.py @@ -100,6 +100,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -109,6 +110,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -118,6 +120,7 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) @@ -127,6 +130,7 @@ def _parse_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_id = _parse_session_id(d.pop("session_id", UNSET)) 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 8c51716d..8e3bc845 100644 --- a/src/splunk_ao/resources/models/log_spans_ingest_request.py +++ b/src/splunk_ao/resources/models/log_spans_ingest_request.py @@ -34,7 +34,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 @@ -51,7 +51,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) @@ -106,9 +106,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): @@ -149,11 +153,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) spans = [] _spans = d.pop("spans") + for spans_item_data in _spans: def _parse_spans_item( data: object, ) -> AgentSpan | ControlSpan | HttpSpan | LlmSpan | RetrieverSpan | ToolSpan | WorkflowSpan: + try: if not isinstance(data, dict): raise TypeError() @@ -221,6 +227,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -230,6 +237,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -239,22 +247,35 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) client_version = _parse_client_version(d.pop("client_version", UNSET)) diff --git a/src/splunk_ao/resources/models/log_spans_ingest_response.py b/src/splunk_ao/resources/models/log_spans_ingest_response.py index 772a78c8..210e20e3 100644 --- a/src/splunk_ao/resources/models/log_spans_ingest_response.py +++ b/src/splunk_ao/resources/models/log_spans_ingest_response.py @@ -112,6 +112,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -121,6 +122,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -130,6 +132,7 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) @@ -139,6 +142,7 @@ def _parse_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_id = _parse_session_id(d.pop("session_id", UNSET)) diff --git a/src/splunk_ao/resources/models/log_stream_response.py b/src/splunk_ao/resources/models/log_stream_response.py index ec636f48..6ccc9921 100644 --- a/src/splunk_ao/resources/models/log_stream_response.py +++ b/src/splunk_ao/resources/models/log_stream_response.py @@ -123,6 +123,7 @@ def _parse_created_by(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) created_by = _parse_created_by(d.pop("created_by", UNSET)) @@ -132,6 +133,7 @@ def _parse_created_by_user(data: object) -> None | Unset | UserInfo: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -149,6 +151,7 @@ def _parse_num_spans(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_spans = _parse_num_spans(d.pop("num_spans", UNSET)) @@ -158,6 +161,7 @@ def _parse_num_traces(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_traces = _parse_num_traces(d.pop("num_traces", UNSET)) 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 2e333365..56048dc0 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 @@ -42,7 +42,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 @@ -74,9 +74,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,6 +169,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -174,6 +179,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -183,22 +189,35 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) client_version = _parse_client_version(d.pop("client_version", UNSET)) @@ -210,6 +229,7 @@ def _parse_input_(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) input_ = _parse_input_(d.pop("input", UNSET)) @@ -219,6 +239,7 @@ def _parse_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) output = _parse_output(d.pop("output", UNSET)) @@ -228,6 +249,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -237,6 +259,7 @@ def _parse_tags(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -254,6 +277,7 @@ def _parse_is_complete(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) is_complete = _parse_is_complete(d.pop("is_complete", UNSET)) @@ -263,6 +287,7 @@ def _parse_duration_ns(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) duration_ns = _parse_duration_ns(d.pop("duration_ns", UNSET)) diff --git a/src/splunk_ao/resources/models/log_trace_update_response.py b/src/splunk_ao/resources/models/log_trace_update_response.py index 192bf581..b55be10b 100644 --- a/src/splunk_ao/resources/models/log_trace_update_response.py +++ b/src/splunk_ao/resources/models/log_trace_update_response.py @@ -105,6 +105,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -114,6 +115,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -123,6 +125,7 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) @@ -132,6 +135,7 @@ def _parse_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_id = _parse_session_id(d.pop("session_id", UNSET)) 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 23104fe6..a1e6fa33 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 @@ -46,7 +46,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 @@ -56,6 +56,7 @@ class LogTracesIngestRequest: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + traces = [] for traces_item_data in self.traces: traces_item = traces_item_data.to_dict() @@ -79,9 +80,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): @@ -140,6 +145,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) traces = [] _traces = d.pop("traces") + for traces_item_data in _traces: traces_item = Trace.from_dict(traces_item_data) @@ -150,6 +156,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -159,6 +166,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -168,22 +176,35 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) client_version = _parse_client_version(d.pop("client_version", UNSET)) @@ -195,6 +216,7 @@ def _parse_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_id = _parse_session_id(d.pop("session_id", UNSET)) @@ -204,6 +226,7 @@ def _parse_session_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_external_id = _parse_session_external_id(d.pop("session_external_id", UNSET)) diff --git a/src/splunk_ao/resources/models/log_traces_ingest_response.py b/src/splunk_ao/resources/models/log_traces_ingest_response.py index 9378f51f..9b989593 100644 --- a/src/splunk_ao/resources/models/log_traces_ingest_response.py +++ b/src/splunk_ao/resources/models/log_traces_ingest_response.py @@ -126,6 +126,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -135,6 +136,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -144,6 +146,7 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) @@ -153,6 +156,7 @@ def _parse_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_id = _parse_session_id(d.pop("session_id", UNSET)) @@ -162,6 +166,7 @@ def _parse_trace_ids(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/luna_3_scorer_response.py b/src/splunk_ao/resources/models/luna_3_scorer_response.py index e00ce28c..43175dec 100644 --- a/src/splunk_ao/resources/models/luna_3_scorer_response.py +++ b/src/splunk_ao/resources/models/luna_3_scorer_response.py @@ -113,6 +113,7 @@ def _parse_threshold(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) threshold = _parse_threshold(d.pop("threshold", UNSET)) @@ -122,6 +123,7 @@ def _parse_created_by(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) created_by = _parse_created_by(d.pop("created_by", UNSET)) 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..80a1e83c 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 @@ -138,15 +138,17 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -155,7 +157,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)) @@ -164,6 +168,7 @@ def _parse_metadata(data: object) -> MCPApprovalRequestEventMetadataType0 | None return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -181,6 +186,7 @@ def _parse_error_message(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) error_message = _parse_error_message(d.pop("error_message", UNSET)) @@ -190,6 +196,7 @@ def _parse_tool_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) tool_name = _parse_tool_name(d.pop("tool_name", UNSET)) @@ -199,6 +206,7 @@ def _parse_tool_invocation(data: object) -> MCPApprovalRequestEventToolInvocatio return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -216,6 +224,7 @@ def _parse_approved(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) approved = _parse_approved(d.pop("approved", 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..2f9ebc2d 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 @@ -151,15 +151,17 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -168,7 +170,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)) @@ -177,6 +181,7 @@ def _parse_metadata(data: object) -> MCPCallEventMetadataType0 | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -194,6 +199,7 @@ def _parse_error_message(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) error_message = _parse_error_message(d.pop("error_message", UNSET)) @@ -203,6 +209,7 @@ def _parse_tool_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) tool_name = _parse_tool_name(d.pop("tool_name", UNSET)) @@ -212,6 +219,7 @@ def _parse_server_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) server_name = _parse_server_name(d.pop("server_name", UNSET)) @@ -221,6 +229,7 @@ def _parse_arguments(data: object) -> MCPCallEventArgumentsType0 | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -238,6 +247,7 @@ def _parse_result(data: object) -> MCPCallEventResultType0 | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() 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..c56ee8ad 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 @@ -126,15 +126,17 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -143,7 +145,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)) @@ -152,6 +156,7 @@ def _parse_metadata(data: object) -> MCPListToolsEventMetadataType0 | None | Uns return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -169,6 +174,7 @@ def _parse_error_message(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) error_message = _parse_error_message(d.pop("error_message", UNSET)) @@ -178,6 +184,7 @@ def _parse_server_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) server_name = _parse_server_name(d.pop("server_name", UNSET)) @@ -187,11 +194,13 @@ def _parse_tools(data: object) -> list[MCPListToolsEventToolsType0Item] | None | return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() tools_type_0 = [] _tools_type_0 = data + for tools_type_0_item_data in _tools_type_0: tools_type_0_item = MCPListToolsEventToolsType0Item.from_dict(tools_type_0_item_data) diff --git a/src/splunk_ao/resources/models/message.py b/src/splunk_ao/resources/models/message.py index 4402592f..d4d359b0 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): @@ -91,14 +95,17 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) def _parse_content(data: object) -> list[FileContentPart | TextContentPart] | str: + try: if not isinstance(data, list): raise TypeError() content_type_1 = [] _content_type_1 = data + for content_type_1_item_data in _content_type_1: def _parse_content_type_1_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -124,13 +131,28 @@ 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) tool_call_id = _parse_tool_call_id(d.pop("tool_call_id", UNSET)) @@ -140,11 +162,13 @@ def _parse_tool_calls(data: object) -> list[ToolCall] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() tool_calls_type_0 = [] _tool_calls_type_0 = data + for tool_calls_type_0_item_data in _tool_calls_type_0: tool_calls_type_0_item = ToolCall.from_dict(tool_calls_type_0_item_data) diff --git a/src/splunk_ao/resources/models/message_event.py b/src/splunk_ao/resources/models/message_event.py index b8be969b..bdc692bb 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,22 @@ 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): @@ -134,15 +153,17 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -151,7 +172,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)) @@ -160,6 +183,7 @@ def _parse_metadata(data: object) -> MessageEventMetadataType0 | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -177,6 +201,7 @@ def _parse_error_message(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) error_message = _parse_error_message(d.pop("error_message", UNSET)) @@ -186,6 +211,7 @@ def _parse_content(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) content = _parse_content(d.pop("content", UNSET)) @@ -195,11 +221,13 @@ def _parse_content_parts(data: object) -> list[MessageEventContentPartsType0Item return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() content_parts_type_0 = [] _content_parts_type_0 = data + for content_parts_type_0_item_data in _content_parts_type_0: content_parts_type_0_item = MessageEventContentPartsType0Item.from_dict( content_parts_type_0_item_data diff --git a/src/splunk_ao/resources/models/messages_list_item.py b/src/splunk_ao/resources/models/messages_list_item.py index 318f824e..4d2635f1 100644 --- a/src/splunk_ao/resources/models/messages_list_item.py +++ b/src/splunk_ao/resources/models/messages_list_item.py @@ -66,14 +66,17 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) def _parse_content(data: object) -> list[FileContentPart | TextContentPart] | str: + try: if not isinstance(data, list): raise TypeError() content_type_1 = [] _content_type_1 = data + for content_type_1_item_data in _content_type_1: def _parse_content_type_1_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -100,6 +103,7 @@ def _parse_content_type_1_item(data: object) -> FileContentPart | TextContentPar content = _parse_content(d.pop("content")) def _parse_role(data: object) -> MessagesListItemRole | str: + try: if not isinstance(data, str): raise TypeError() @@ -108,6 +112,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..99023433 100644 --- a/src/splunk_ao/resources/models/metadata_filter.py +++ b/src/splunk_ao/resources/models/metadata_filter.py @@ -17,20 +17,25 @@ 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,11 +59,27 @@ 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") def _parse_value(data: object) -> list[str] | str: + try: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/metric_aggregates.py b/src/splunk_ao/resources/models/metric_aggregates.py index db117193..10dca70e 100644 --- a/src/splunk_ao/resources/models/metric_aggregates.py +++ b/src/splunk_ao/resources/models/metric_aggregates.py @@ -158,6 +158,7 @@ def _parse_avg(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) avg = _parse_avg(d.pop("avg", UNSET)) @@ -167,6 +168,7 @@ def _parse_sum_(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) sum_ = _parse_sum_(d.pop("sum", UNSET)) @@ -176,6 +178,7 @@ def _parse_min_(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) min_ = _parse_min_(d.pop("min", UNSET)) @@ -185,6 +188,7 @@ def _parse_max_(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) max_ = _parse_max_(d.pop("max", UNSET)) @@ -194,6 +198,7 @@ def _parse_count(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) count = _parse_count(d.pop("count", UNSET)) @@ -203,6 +208,7 @@ def _parse_pct(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) pct = _parse_pct(d.pop("pct", UNSET)) @@ -212,6 +218,7 @@ def _parse_p50(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) p50 = _parse_p50(d.pop("p50", UNSET)) @@ -221,6 +228,7 @@ def _parse_p90(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) p90 = _parse_p90(d.pop("p90", UNSET)) @@ -230,6 +238,7 @@ def _parse_p95(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) p95 = _parse_p95(d.pop("p95", UNSET)) @@ -239,6 +248,7 @@ def _parse_p99(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) p99 = _parse_p99(d.pop("p99", UNSET)) @@ -248,6 +258,7 @@ def _parse_value_distribution(data: object) -> MetricAggregatesValueDistribution return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/metric_aggregation_detail.py b/src/splunk_ao/resources/models/metric_aggregation_detail.py index 42f9904b..25c38ddd 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,21 @@ 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_color_picker_boolean.py b/src/splunk_ao/resources/models/metric_color_picker_boolean.py index 10cabf14..12d12e1d 100644 --- a/src/splunk_ao/resources/models/metric_color_picker_boolean.py +++ b/src/splunk_ao/resources/models/metric_color_picker_boolean.py @@ -40,6 +40,7 @@ class MetricColorPickerBoolean: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + constraints = [] for constraints_item_data in self.constraints: constraints_item = constraints_item_data.to_dict() @@ -62,6 +63,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) constraints = [] _constraints = d.pop("constraints") + for constraints_item_data in _constraints: constraints_item = BooleanColorConstraint.from_dict(constraints_item_data) diff --git a/src/splunk_ao/resources/models/metric_color_picker_categorical.py b/src/splunk_ao/resources/models/metric_color_picker_categorical.py index 59d8ee5e..87b3e49b 100644 --- a/src/splunk_ao/resources/models/metric_color_picker_categorical.py +++ b/src/splunk_ao/resources/models/metric_color_picker_categorical.py @@ -41,6 +41,7 @@ class MetricColorPickerCategorical: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + constraints = [] for constraints_item_data in self.constraints: constraints_item = constraints_item_data.to_dict() @@ -63,6 +64,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) constraints = [] _constraints = d.pop("constraints") + for constraints_item_data in _constraints: constraints_item = CategoricalColorConstraint.from_dict(constraints_item_data) diff --git a/src/splunk_ao/resources/models/metric_color_picker_multi_label.py b/src/splunk_ao/resources/models/metric_color_picker_multi_label.py index 11b30cbc..9904f2b1 100644 --- a/src/splunk_ao/resources/models/metric_color_picker_multi_label.py +++ b/src/splunk_ao/resources/models/metric_color_picker_multi_label.py @@ -41,6 +41,7 @@ class MetricColorPickerMultiLabel: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + constraints = [] for constraints_item_data in self.constraints: constraints_item = constraints_item_data.to_dict() @@ -63,6 +64,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) constraints = [] _constraints = d.pop("constraints") + for constraints_item_data in _constraints: constraints_item = CategoricalColorConstraint.from_dict(constraints_item_data) diff --git a/src/splunk_ao/resources/models/metric_color_picker_numeric.py b/src/splunk_ao/resources/models/metric_color_picker_numeric.py index ddd82beb..bc681fa0 100644 --- a/src/splunk_ao/resources/models/metric_color_picker_numeric.py +++ b/src/splunk_ao/resources/models/metric_color_picker_numeric.py @@ -43,6 +43,7 @@ class MetricColorPickerNumeric: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + constraints = [] for constraints_item_data in self.constraints: constraints_item = constraints_item_data.to_dict() @@ -65,6 +66,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) constraints = [] _constraints = d.pop("constraints") + for constraints_item_data in _constraints: constraints_item = NumericColorConstraint.from_dict(constraints_item_data) diff --git a/src/splunk_ao/resources/models/metric_computation.py b/src/splunk_ao/resources/models/metric_computation.py index c2388233..96df0cd2 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) @@ -97,16 +97,19 @@ def _parse_value( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() value_type_3 = [] _value_type_3 = data + for value_type_3_item_data in _value_type_3: def _parse_value_type_3_item(data: object) -> float | int | None | str: if data is None: return data + return cast(float | int | None | str, data) value_type_3_item = _parse_value_type_3_item(value_type_3_item_data) @@ -135,15 +138,17 @@ def _parse_execution_time(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -152,7 +157,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)) @@ -161,6 +168,7 @@ def _parse_error_message(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) error_message = _parse_error_message(d.pop("error_message", UNSET)) diff --git a/src/splunk_ao/resources/models/metric_computation_value_type_4.py b/src/splunk_ao/resources/models/metric_computation_value_type_4.py index 7bf56f7c..4e8d6ed7 100644 --- a/src/splunk_ao/resources/models/metric_computation_value_type_4.py +++ b/src/splunk_ao/resources/models/metric_computation_value_type_4.py @@ -34,6 +34,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_additional_property(data: object) -> float | int | None | str: if data is None: return data + return cast(float | int | None | str, data) additional_property = _parse_additional_property(prop_dict) diff --git a/src/splunk_ao/resources/models/metric_computing.py b/src/splunk_ao/resources/models/metric_computing.py index a8e1083b..901b7213 100644 --- a/src/splunk_ao/resources/models/metric_computing.py +++ b/src/splunk_ao/resources/models/metric_computing.py @@ -60,6 +60,7 @@ def _parse_metric_key_alias(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metric_key_alias = _parse_metric_key_alias(d.pop("metric_key_alias", UNSET)) diff --git a/src/splunk_ao/resources/models/metric_error.py b/src/splunk_ao/resources/models/metric_error.py index fe8425a1..9ba84d99 100644 --- a/src/splunk_ao/resources/models/metric_error.py +++ b/src/splunk_ao/resources/models/metric_error.py @@ -94,6 +94,7 @@ def _parse_metric_key_alias(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metric_key_alias = _parse_metric_key_alias(d.pop("metric_key_alias", UNSET)) @@ -103,6 +104,7 @@ def _parse_message(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) message = _parse_message(d.pop("message", UNSET)) @@ -112,6 +114,7 @@ def _parse_ems_error_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) ems_error_code = _parse_ems_error_code(d.pop("ems_error_code", UNSET)) @@ -121,6 +124,7 @@ def _parse_standard_error(data: object) -> None | StandardError | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/metric_failed.py b/src/splunk_ao/resources/models/metric_failed.py index b8c903d1..cbeb6ebc 100644 --- a/src/splunk_ao/resources/models/metric_failed.py +++ b/src/splunk_ao/resources/models/metric_failed.py @@ -94,6 +94,7 @@ def _parse_metric_key_alias(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metric_key_alias = _parse_metric_key_alias(d.pop("metric_key_alias", UNSET)) @@ -103,6 +104,7 @@ def _parse_message(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) message = _parse_message(d.pop("message", UNSET)) @@ -112,6 +114,7 @@ def _parse_ems_error_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) ems_error_code = _parse_ems_error_code(d.pop("ems_error_code", UNSET)) @@ -121,6 +124,7 @@ def _parse_standard_error(data: object) -> None | StandardError | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/metric_not_applicable.py b/src/splunk_ao/resources/models/metric_not_applicable.py index 9e590b09..1b27dd18 100644 --- a/src/splunk_ao/resources/models/metric_not_applicable.py +++ b/src/splunk_ao/resources/models/metric_not_applicable.py @@ -90,6 +90,7 @@ def _parse_metric_key_alias(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metric_key_alias = _parse_metric_key_alias(d.pop("metric_key_alias", UNSET)) @@ -101,6 +102,7 @@ def _parse_ems_error_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) ems_error_code = _parse_ems_error_code(d.pop("ems_error_code", UNSET)) @@ -110,6 +112,7 @@ def _parse_standard_error(data: object) -> None | StandardError | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/metric_not_computed.py b/src/splunk_ao/resources/models/metric_not_computed.py index 22493667..b43d293d 100644 --- a/src/splunk_ao/resources/models/metric_not_computed.py +++ b/src/splunk_ao/resources/models/metric_not_computed.py @@ -90,6 +90,7 @@ def _parse_metric_key_alias(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metric_key_alias = _parse_metric_key_alias(d.pop("metric_key_alias", UNSET)) @@ -101,6 +102,7 @@ def _parse_ems_error_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) ems_error_code = _parse_ems_error_code(d.pop("ems_error_code", UNSET)) @@ -110,6 +112,7 @@ def _parse_standard_error(data: object) -> None | StandardError | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/metric_pending.py b/src/splunk_ao/resources/models/metric_pending.py index 619b6f88..c3b9c8ca 100644 --- a/src/splunk_ao/resources/models/metric_pending.py +++ b/src/splunk_ao/resources/models/metric_pending.py @@ -54,6 +54,7 @@ def _parse_metric_key_alias(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metric_key_alias = _parse_metric_key_alias(d.pop("metric_key_alias", UNSET)) diff --git a/src/splunk_ao/resources/models/metric_roll_up.py b/src/splunk_ao/resources/models/metric_roll_up.py index d262d874..b3eea3a0 100644 --- a/src/splunk_ao/resources/models/metric_roll_up.py +++ b/src/splunk_ao/resources/models/metric_roll_up.py @@ -440,6 +440,7 @@ def _parse_value( ): if data is None: return data + try: if not isinstance(data, str): raise TypeError() @@ -501,6 +502,7 @@ def _parse_value( raise TypeError() value_type_11 = [] _value_type_11 = data + for value_type_11_item_data in _value_type_11: def _parse_value_type_11_item( @@ -521,6 +523,7 @@ def _parse_value_type_11_item( ): if data is None: return data + try: if not isinstance(data, str): raise TypeError() @@ -605,9 +608,11 @@ def _parse_value_type_11_item( raise TypeError() value_type_12 = [] _value_type_12 = data + for value_type_12_item_data in _value_type_12: value_type_12_item = [] _value_type_12_item = value_type_12_item_data + for value_type_12_item_item_data in _value_type_12_item: def _parse_value_type_12_item_item( @@ -628,6 +633,7 @@ def _parse_value_type_12_item_item( ): if data is None: return data + try: if not isinstance(data, str): raise TypeError() @@ -714,12 +720,15 @@ def _parse_value_type_12_item_item( raise TypeError() value_type_13 = [] _value_type_13 = data + for value_type_13_item_data in _value_type_13: value_type_13_item = [] _value_type_13_item = value_type_13_item_data + for value_type_13_item_item_data in _value_type_13_item: value_type_13_item_item = [] _value_type_13_item_item = value_type_13_item_item_data + for value_type_13_item_item_item_data in _value_type_13_item_item: def _parse_value_type_13_item_item_item( @@ -740,6 +749,7 @@ def _parse_value_type_13_item_item_item( ): if data is None: return data + try: if not isinstance(data, str): raise TypeError() @@ -900,6 +910,7 @@ def _parse_metric_key_alias(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metric_key_alias = _parse_metric_key_alias(d.pop("metric_key_alias", UNSET)) @@ -909,6 +920,7 @@ def _parse_explanation(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) explanation = _parse_explanation(d.pop("explanation", UNSET)) @@ -918,6 +930,7 @@ def _parse_cost(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) cost = _parse_cost(d.pop("cost", UNSET)) @@ -927,6 +940,7 @@ def _parse_model_alias(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_alias = _parse_model_alias(d.pop("model_alias", UNSET)) @@ -936,6 +950,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) @@ -945,6 +960,7 @@ def _parse_multijudge_average(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) multijudge_average = _parse_multijudge_average(d.pop("multijudge_average", UNSET)) @@ -954,6 +970,7 @@ def _parse_boolean_from_prob(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) boolean_from_prob = _parse_boolean_from_prob(d.pop("boolean_from_prob", UNSET)) @@ -963,6 +980,7 @@ def _parse_input_tokens(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) input_tokens = _parse_input_tokens(d.pop("input_tokens", UNSET)) @@ -972,6 +990,7 @@ def _parse_output_tokens(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) output_tokens = _parse_output_tokens(d.pop("output_tokens", UNSET)) @@ -981,6 +1000,7 @@ def _parse_total_tokens(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) total_tokens = _parse_total_tokens(d.pop("total_tokens", UNSET)) @@ -990,6 +1010,7 @@ def _parse_batch_size(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) batch_size = _parse_batch_size(d.pop("batch_size", UNSET)) @@ -999,6 +1020,7 @@ def _parse_metadata(data: object) -> MetricRollUpMetadataType0 | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/metric_roll_up_roll_up_metrics.py b/src/splunk_ao/resources/models/metric_roll_up_roll_up_metrics.py index 10ae4f30..43dcd679 100644 --- a/src/splunk_ao/resources/models/metric_roll_up_roll_up_metrics.py +++ b/src/splunk_ao/resources/models/metric_roll_up_roll_up_metrics.py @@ -50,6 +50,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: for prop_name, prop_dict in d.items(): def _parse_additional_property(data: object) -> float | MetricRollUpRollUpMetricsAdditionalPropertyType1: + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/metric_settings_request.py b/src/splunk_ao/resources/models/metric_settings_request.py index dd0b652a..c317556a 100644 --- a/src/splunk_ao/resources/models/metric_settings_request.py +++ b/src/splunk_ao/resources/models/metric_settings_request.py @@ -29,6 +29,7 @@ class MetricSettingsRequest: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + scorers: list[dict[str, Any]] | None | Unset if isinstance(self.scorers, Unset): scorers = UNSET @@ -75,11 +76,13 @@ def _parse_scorers(data: object) -> list[RuntimeScorerConfig] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() scorers_type_0 = [] _scorers_type_0 = data + for scorers_type_0_item_data in _scorers_type_0: scorers_type_0_item = RuntimeScorerConfig.from_dict(scorers_type_0_item_data) @@ -97,11 +100,13 @@ def _parse_segment_filters(data: object) -> list[SegmentFilter] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() segment_filters_type_0 = [] _segment_filters_type_0 = data + for segment_filters_type_0_item_data in _segment_filters_type_0: segment_filters_type_0_item = SegmentFilter.from_dict(segment_filters_type_0_item_data) diff --git a/src/splunk_ao/resources/models/metric_settings_response.py b/src/splunk_ao/resources/models/metric_settings_response.py index a2119c84..b73e1582 100644 --- a/src/splunk_ao/resources/models/metric_settings_response.py +++ b/src/splunk_ao/resources/models/metric_settings_response.py @@ -29,6 +29,7 @@ class MetricSettingsResponse: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + scorers = [] for scorers_item_data in self.scorers: scorers_item = scorers_item_data.to_dict() @@ -62,6 +63,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) scorers = [] _scorers = d.pop("scorers") + for scorers_item_data in _scorers: scorers_item = RuntimeScorerConfig.from_dict(scorers_item_data) @@ -72,11 +74,13 @@ def _parse_segment_filters(data: object) -> list[SegmentFilter] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() segment_filters_type_0 = [] _segment_filters_type_0 = data + for segment_filters_type_0_item_data in _segment_filters_type_0: segment_filters_type_0_item = SegmentFilter.from_dict(segment_filters_type_0_item_data) diff --git a/src/splunk_ao/resources/models/metric_success.py b/src/splunk_ao/resources/models/metric_success.py index 44f722d0..685c6ed6 100644 --- a/src/splunk_ao/resources/models/metric_success.py +++ b/src/splunk_ao/resources/models/metric_success.py @@ -462,6 +462,7 @@ def _parse_value( ): if data is None: return data + try: if not isinstance(data, str): raise TypeError() @@ -523,6 +524,7 @@ def _parse_value( raise TypeError() value_type_11 = [] _value_type_11 = data + for value_type_11_item_data in _value_type_11: def _parse_value_type_11_item( @@ -543,6 +545,7 @@ def _parse_value_type_11_item( ): if data is None: return data + try: if not isinstance(data, str): raise TypeError() @@ -627,9 +630,11 @@ def _parse_value_type_11_item( raise TypeError() value_type_12 = [] _value_type_12 = data + for value_type_12_item_data in _value_type_12: value_type_12_item = [] _value_type_12_item = value_type_12_item_data + for value_type_12_item_item_data in _value_type_12_item: def _parse_value_type_12_item_item( @@ -650,6 +655,7 @@ def _parse_value_type_12_item_item( ): if data is None: return data + try: if not isinstance(data, str): raise TypeError() @@ -736,12 +742,15 @@ def _parse_value_type_12_item_item( raise TypeError() value_type_13 = [] _value_type_13 = data + for value_type_13_item_data in _value_type_13: value_type_13_item = [] _value_type_13_item = value_type_13_item_data + for value_type_13_item_item_data in _value_type_13_item: value_type_13_item_item = [] _value_type_13_item_item = value_type_13_item_item_data + for value_type_13_item_item_item_data in _value_type_13_item_item: def _parse_value_type_13_item_item_item( @@ -762,6 +771,7 @@ def _parse_value_type_13_item_item_item( ): if data is None: return data + try: if not isinstance(data, str): raise TypeError() @@ -922,6 +932,7 @@ def _parse_metric_key_alias(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metric_key_alias = _parse_metric_key_alias(d.pop("metric_key_alias", UNSET)) @@ -931,6 +942,7 @@ def _parse_explanation(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) explanation = _parse_explanation(d.pop("explanation", UNSET)) @@ -940,6 +952,7 @@ def _parse_cost(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) cost = _parse_cost(d.pop("cost", UNSET)) @@ -949,6 +962,7 @@ def _parse_model_alias(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_alias = _parse_model_alias(d.pop("model_alias", UNSET)) @@ -958,6 +972,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) @@ -967,6 +982,7 @@ def _parse_multijudge_average(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) multijudge_average = _parse_multijudge_average(d.pop("multijudge_average", UNSET)) @@ -976,6 +992,7 @@ def _parse_boolean_from_prob(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) boolean_from_prob = _parse_boolean_from_prob(d.pop("boolean_from_prob", UNSET)) @@ -985,6 +1002,7 @@ def _parse_input_tokens(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) input_tokens = _parse_input_tokens(d.pop("input_tokens", UNSET)) @@ -994,6 +1012,7 @@ def _parse_output_tokens(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) output_tokens = _parse_output_tokens(d.pop("output_tokens", UNSET)) @@ -1003,6 +1022,7 @@ def _parse_total_tokens(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) total_tokens = _parse_total_tokens(d.pop("total_tokens", UNSET)) @@ -1012,6 +1032,7 @@ def _parse_batch_size(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) batch_size = _parse_batch_size(d.pop("batch_size", UNSET)) @@ -1021,6 +1042,7 @@ def _parse_metadata(data: object) -> MetricSuccessMetadataType0 | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1038,6 +1060,7 @@ def _parse_display_value(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) display_value = _parse_display_value(d.pop("display_value", UNSET)) @@ -1047,6 +1070,7 @@ def _parse_rationale(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) rationale = _parse_rationale(d.pop("rationale", UNSET)) @@ -1056,6 +1080,7 @@ def _parse_value_description(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) value_description = _parse_value_description(d.pop("value_description", UNSET)) diff --git a/src/splunk_ao/resources/models/metric_threshold.py b/src/splunk_ao/resources/models/metric_threshold.py index 3c116c4f..d3647393 100644 --- a/src/splunk_ao/resources/models/metric_threshold.py +++ b/src/splunk_ao/resources/models/metric_threshold.py @@ -71,6 +71,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: for buckets_item_data in _buckets: def _parse_buckets_item(data: object) -> float | int: + return cast(float | int, data) buckets_item = _parse_buckets_item(buckets_item_data) diff --git a/src/splunk_ao/resources/models/metrics.py b/src/splunk_ao/resources/models/metrics.py index 0cd8ca72..9e3e0237 100644 --- a/src/splunk_ao/resources/models/metrics.py +++ b/src/splunk_ao/resources/models/metrics.py @@ -23,6 +23,7 @@ class Metrics: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + duration_ns: int | None | Unset if isinstance(self.duration_ns, Unset): duration_ns = UNSET @@ -46,6 +47,7 @@ def _parse_duration_ns(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) duration_ns = _parse_duration_ns(d.pop("duration_ns", 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 bd44201d..319d539a 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 or DECISION_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. @@ -38,7 +38,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 @@ -125,6 +125,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -134,6 +135,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -143,15 +145,17 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -160,7 +164,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)) @@ -173,6 +179,7 @@ def _parse_required_scorers(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -190,6 +197,7 @@ def _parse_score_type(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) score_type = _parse_score_type(d.pop("score_type", UNSET)) diff --git a/src/splunk_ao/resources/models/mistral_integration.py b/src/splunk_ao/resources/models/mistral_integration.py index 045ffe1e..0910200b 100644 --- a/src/splunk_ao/resources/models/mistral_integration.py +++ b/src/splunk_ao/resources/models/mistral_integration.py @@ -77,6 +77,7 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) id = _parse_id(d.pop("id", UNSET)) @@ -94,6 +95,7 @@ def _parse_extra(data: object) -> MistralIntegrationExtraType0 | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/modality_filter.py b/src/splunk_ao/resources/models/modality_filter.py index a7999eb1..2ab4a48f 100644 --- a/src/splunk_ao/resources/models/modality_filter.py +++ b/src/splunk_ao/resources/models/modality_filter.py @@ -18,18 +18,23 @@ 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,9 +56,25 @@ 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: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/model.py b/src/splunk_ao/resources/models/model.py index 4ff7d94c..a76678d0 100644 --- a/src/splunk_ao/resources/models/model.py +++ b/src/splunk_ao/resources/models/model.py @@ -28,23 +28,23 @@ class Model: Attributes: name (str): Provider model identifier used to match the model to its configured provider deployment or profile. alias (str): Galileo model identifier used in settings and API requests to select this model. - lifecycle_state (ModelLifecycleState | Unset): + lifecycle_state (ModelLifecycleState | str | Unset): replacement_alias (None | str | Unset): deprecation_date (datetime.date | None | Unset): retirement_date (datetime.date | None | Unset): display_name (str | Unset): Human-readable model name shown in the UI. Defaults to the alias for legacy registrations. Default: ''. - 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. @@ -63,21 +63,21 @@ class Model: name: str alias: str - lifecycle_state: ModelLifecycleState | Unset = UNSET + lifecycle_state: ModelLifecycleState | str | Unset = UNSET replacement_alias: None | str | Unset = UNSET deprecation_date: datetime.date | None | Unset = UNSET retirement_date: datetime.date | None | Unset = UNSET display_name: str | Unset = "" - 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 @@ -100,9 +100,13 @@ def to_dict(self) -> dict[str, Any]: alias = self.alias - lifecycle_state: str | Unset = UNSET - if not isinstance(self.lifecycle_state, Unset): + lifecycle_state: str | Unset + if isinstance(self.lifecycle_state, Unset): + lifecycle_state = UNSET + elif isinstance(self.lifecycle_state, ModelLifecycleState): lifecycle_state = self.lifecycle_state.value + else: + lifecycle_state = self.lifecycle_state replacement_alias: None | str | Unset if isinstance(self.replacement_alias, Unset): @@ -128,9 +132,13 @@ def to_dict(self) -> dict[str, Any]: display_name = self.display_name - 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): @@ -148,9 +156,16 @@ def to_dict(self) -> dict[str, Any]: input_modalities: list[str] | Unset = UNSET if not isinstance(self.input_modalities, Unset): + if not isinstance(self.input_modalities, list): + raise TypeError("Unexpected value type for input_modalities") + 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 @@ -175,9 +190,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 @@ -296,18 +315,30 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: alias = d.pop("alias") - _lifecycle_state = d.pop("lifecycle_state", UNSET) - lifecycle_state: ModelLifecycleState | Unset - if isinstance(_lifecycle_state, Unset): - lifecycle_state = UNSET - else: - lifecycle_state = ModelLifecycleState(_lifecycle_state) + def _parse_lifecycle_state(data: object) -> ModelLifecycleState | str | Unset: + if isinstance(data, Unset): + return data + + try: + if not isinstance(data, str): + raise TypeError() + lifecycle_state_type_0 = ModelLifecycleState(data) + + return lifecycle_state_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for lifecycle_state") + return cast(ModelLifecycleState | str | Unset, data) + + lifecycle_state = _parse_lifecycle_state(d.pop("lifecycle_state", UNSET)) def _parse_replacement_alias(data: object) -> None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) replacement_alias = _parse_replacement_alias(d.pop("replacement_alias", UNSET)) @@ -317,6 +348,7 @@ def _parse_deprecation_date(data: object) -> datetime.date | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -334,6 +366,7 @@ def _parse_retirement_date(data: object) -> datetime.date | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -348,18 +381,30 @@ def _parse_retirement_date(data: object) -> datetime.date | None | Unset: display_name = d.pop("display_name", UNSET) - _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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) user_role = _parse_user_role(d.pop("user_role", UNSET)) @@ -369,6 +414,7 @@ def _parse_assistant_role(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) assistant_role = _parse_assistant_role(d.pop("assistant_role", UNSET)) @@ -376,11 +422,29 @@ 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: + if not isinstance(_input_modalities, list): + raise TypeError("Unexpected value type for input_modalities") + 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) @@ -391,6 +455,7 @@ def _parse_input_token_limit(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) input_token_limit = _parse_input_token_limit(d.pop("input_token_limit", UNSET)) @@ -400,6 +465,7 @@ def _parse_output_token_limit(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) output_token_limit = _parse_output_token_limit(d.pop("output_token_limit", UNSET)) @@ -409,16 +475,28 @@ def _parse_token_limit(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) 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) @@ -433,6 +511,7 @@ def _parse_api_version(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) api_version = _parse_api_version(d.pop("api_version", UNSET)) @@ -448,6 +527,7 @@ def _parse_max_top_p(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) max_top_p = _parse_max_top_p(d.pop("max_top_p", UNSET)) @@ -464,6 +544,7 @@ def _parse_output_map(data: object) -> None | OutputMap | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -481,6 +562,7 @@ def _parse_input_map(data: object) -> InputMap | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/model_properties.py b/src/splunk_ao/resources/models/model_properties.py index a548921f..b44e9e93 100644 --- a/src/splunk_ao/resources/models/model_properties.py +++ b/src/splunk_ao/resources/models/model_properties.py @@ -22,23 +22,23 @@ class ModelProperties: alias (str): Galileo model identifier used in settings and API requests to select this model. name (str): Provider model identifier used to match the model to its configured provider deployment or profile. display_name (str): Human-readable model name shown in the UI. - input_modalities (list[ContentModality]): - lifecycle_state (ModelLifecycleState | Unset): + input_modalities (list[ContentModality | str]): + lifecycle_state (ModelLifecycleState | str | Unset): replacement_alias (None | str | Unset): deprecation_date (datetime.date | None | Unset): retirement_date (datetime.date | None | Unset): - multimodal_capabilities (list[MultimodalCapability] | Unset): + multimodal_capabilities (list[MultimodalCapability | str] | Unset): """ alias: str name: str display_name: str - input_modalities: list[ContentModality] - lifecycle_state: ModelLifecycleState | Unset = UNSET + input_modalities: list[ContentModality | str] + lifecycle_state: ModelLifecycleState | str | Unset = UNSET replacement_alias: None | str | Unset = UNSET deprecation_date: datetime.date | None | Unset = UNSET retirement_date: datetime.date | None | Unset = UNSET - multimodal_capabilities: list[MultimodalCapability] | Unset = UNSET + 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]: @@ -48,14 +48,25 @@ def to_dict(self) -> dict[str, Any]: display_name = self.display_name + if not isinstance(self.input_modalities, list): + raise TypeError("Unexpected value type for input_modalities") + 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) - lifecycle_state: str | Unset = UNSET - if not isinstance(self.lifecycle_state, Unset): + lifecycle_state: str | Unset + if isinstance(self.lifecycle_state, Unset): + lifecycle_state = UNSET + elif isinstance(self.lifecycle_state, ModelLifecycleState): lifecycle_state = self.lifecycle_state.value + else: + lifecycle_state = self.lifecycle_state replacement_alias: None | str | Unset if isinstance(self.replacement_alias, Unset): @@ -81,9 +92,16 @@ def to_dict(self) -> dict[str, Any]: multimodal_capabilities: list[str] | Unset = UNSET if not isinstance(self.multimodal_capabilities, Unset): + if not isinstance(self.multimodal_capabilities, list): + raise TypeError("Unexpected value type for multimodal_capabilities") + 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] = {} @@ -115,23 +133,53 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: input_modalities = [] _input_modalities = d.pop("input_modalities") + if not isinstance(_input_modalities, list): + raise TypeError("Unexpected value type for 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) - _lifecycle_state = d.pop("lifecycle_state", UNSET) - lifecycle_state: ModelLifecycleState | Unset - if isinstance(_lifecycle_state, Unset): - lifecycle_state = UNSET - else: - lifecycle_state = ModelLifecycleState(_lifecycle_state) + def _parse_lifecycle_state(data: object) -> ModelLifecycleState | str | Unset: + if isinstance(data, Unset): + return data + + try: + if not isinstance(data, str): + raise TypeError() + lifecycle_state_type_0 = ModelLifecycleState(data) + + return lifecycle_state_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for lifecycle_state") + return cast(ModelLifecycleState | str | Unset, data) + + lifecycle_state = _parse_lifecycle_state(d.pop("lifecycle_state", UNSET)) def _parse_replacement_alias(data: object) -> None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) replacement_alias = _parse_replacement_alias(d.pop("replacement_alias", UNSET)) @@ -141,6 +189,7 @@ def _parse_deprecation_date(data: object) -> datetime.date | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -158,6 +207,7 @@ def _parse_retirement_date(data: object) -> datetime.date | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -171,11 +221,29 @@ def _parse_retirement_date(data: object) -> datetime.date | None | Unset: retirement_date = _parse_retirement_date(d.pop("retirement_date", UNSET)) _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: + if not isinstance(_multimodal_capabilities, list): + raise TypeError("Unexpected value type for multimodal_capabilities") + 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/multi_modal_model_integration_config.py b/src/splunk_ao/resources/models/multi_modal_model_integration_config.py index f66a286f..af227b4a 100644 --- a/src/splunk_ao/resources/models/multi_modal_model_integration_config.py +++ b/src/splunk_ao/resources/models/multi_modal_model_integration_config.py @@ -25,6 +25,7 @@ class MultiModalModelIntegrationConfig: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + max_files: int | None | Unset if isinstance(self.max_files, Unset): max_files = UNSET @@ -56,6 +57,7 @@ def _parse_max_files(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) max_files = _parse_max_files(d.pop("max_files", UNSET)) @@ -65,6 +67,7 @@ def _parse_max_file_size_bytes(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) max_file_size_bytes = _parse_max_file_size_bytes(d.pop("max_file_size_bytes", UNSET)) diff --git a/src/splunk_ao/resources/models/node_name_filter.py b/src/splunk_ao/resources/models/node_name_filter.py index f2cc29ed..478b74d5 100644 --- a/src/splunk_ao/resources/models/node_name_filter.py +++ b/src/splunk_ao/resources/models/node_name_filter.py @@ -17,20 +17,25 @@ 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,9 +61,25 @@ 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: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/not_node_log_records_filter.py b/src/splunk_ao/resources/models/not_node_log_records_filter.py index e09cbc9b..a6858f28 100644 --- a/src/splunk_ao/resources/models/not_node_log_records_filter.py +++ b/src/splunk_ao/resources/models/not_node_log_records_filter.py @@ -57,6 +57,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_not_( data: object, ) -> AndNodeLogRecordsFilter | FilterLeafLogRecordsFilter | NotNodeLogRecordsFilter | OrNodeLogRecordsFilter: + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/numeric_color_constraint.py b/src/splunk_ao/resources/models/numeric_color_constraint.py index ebb214c1..6ed647cb 100644 --- a/src/splunk_ao/resources/models/numeric_color_constraint.py +++ b/src/splunk_ao/resources/models/numeric_color_constraint.py @@ -28,20 +28,29 @@ 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 - operator = self.operator.value + color: str + if isinstance(self.color, MetricColor): + color = self.color.value + else: + color = self.color + + 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,11 +68,41 @@ 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: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/nvidia_integration.py b/src/splunk_ao/resources/models/nvidia_integration.py index 5ea50eee..06e7c091 100644 --- a/src/splunk_ao/resources/models/nvidia_integration.py +++ b/src/splunk_ao/resources/models/nvidia_integration.py @@ -77,6 +77,7 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) id = _parse_id(d.pop("id", UNSET)) @@ -94,6 +95,7 @@ def _parse_extra(data: object) -> None | NvidiaIntegrationExtraType0 | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/open_ai_integration.py b/src/splunk_ao/resources/models/open_ai_integration.py index 4ef0f6bd..d67acbfa 100644 --- a/src/splunk_ao/resources/models/open_ai_integration.py +++ b/src/splunk_ao/resources/models/open_ai_integration.py @@ -87,6 +87,7 @@ def _parse_organization_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) organization_id = _parse_organization_id(d.pop("organization_id", UNSET)) @@ -96,6 +97,7 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) id = _parse_id(d.pop("id", UNSET)) @@ -113,6 +115,7 @@ def _parse_extra(data: object) -> None | OpenAIIntegrationExtraType0 | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/open_ai_integration_create.py b/src/splunk_ao/resources/models/open_ai_integration_create.py index 3c0720b5..f6250371 100644 --- a/src/splunk_ao/resources/models/open_ai_integration_create.py +++ b/src/splunk_ao/resources/models/open_ai_integration_create.py @@ -50,6 +50,7 @@ def _parse_organization_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) organization_id = _parse_organization_id(d.pop("organization_id", UNSET)) diff --git a/src/splunk_ao/resources/models/or_node_log_records_filter.py b/src/splunk_ao/resources/models/or_node_log_records_filter.py index 94aa2e0d..22ba3527 100644 --- a/src/splunk_ao/resources/models/or_node_log_records_filter.py +++ b/src/splunk_ao/resources/models/or_node_log_records_filter.py @@ -59,6 +59,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) or_ = [] _or_ = d.pop("or") + for or_item_data in _or_: def _parse_or_item( @@ -66,6 +67,7 @@ def _parse_or_item( ) -> ( AndNodeLogRecordsFilter | FilterLeafLogRecordsFilter | NotNodeLogRecordsFilter | OrNodeLogRecordsFilter ): + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/output_map.py b/src/splunk_ao/resources/models/output_map.py index af2d3ead..9b8fde5e 100644 --- a/src/splunk_ao/resources/models/output_map.py +++ b/src/splunk_ao/resources/models/output_map.py @@ -80,6 +80,7 @@ def _parse_token_count(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) token_count = _parse_token_count(d.pop("token_count", UNSET)) @@ -89,6 +90,7 @@ def _parse_input_token_count(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) input_token_count = _parse_input_token_count(d.pop("input_token_count", UNSET)) @@ -98,6 +100,7 @@ def _parse_output_token_count(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) output_token_count = _parse_output_token_count(d.pop("output_token_count", UNSET)) @@ -107,6 +110,7 @@ def _parse_completion_reason(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) completion_reason = _parse_completion_reason(d.pop("completion_reason", UNSET)) diff --git a/src/splunk_ao/resources/models/output_pii_scorer.py b/src/splunk_ao/resources/models/output_pii_scorer.py index af641ca8..942bed51 100644 --- a/src/splunk_ao/resources/models/output_pii_scorer.py +++ b/src/splunk_ao/resources/models/output_pii_scorer.py @@ -81,14 +81,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/output_sexist_scorer.py b/src/splunk_ao/resources/models/output_sexist_scorer.py index f1225ca0..e44709e7 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): @@ -110,14 +114,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() @@ -151,18 +158,30 @@ 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", UNSET)) @@ -172,6 +191,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) diff --git a/src/splunk_ao/resources/models/output_tone_scorer.py b/src/splunk_ao/resources/models/output_tone_scorer.py index 921804ad..4b7d8a89 100644 --- a/src/splunk_ao/resources/models/output_tone_scorer.py +++ b/src/splunk_ao/resources/models/output_tone_scorer.py @@ -81,14 +81,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/output_toxicity_scorer.py b/src/splunk_ao/resources/models/output_toxicity_scorer.py index 50d34aa7..74911380 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): @@ -110,14 +114,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() @@ -151,18 +158,30 @@ 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", UNSET)) @@ -172,6 +191,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) 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 b1e1f104..f05c4fe5 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 @@ -83,7 +83,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 @@ -92,7 +92,7 @@ class PartialExtendedAgentSpanRecord: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -103,7 +103,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. agent_name (None | str | Unset): Name of the agent. """ @@ -138,13 +138,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -153,7 +153,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 agent_name: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -392,9 +392,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -474,9 +481,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 agent_name: None | str | Unset if isinstance(self.agent_name, Unset): @@ -613,11 +624,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | list[Message] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: input_type_1_item = Message.from_dict(input_type_1_item_data) @@ -631,9 +644,11 @@ def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | lis raise TypeError() input_type_2 = [] _input_type_2 = data + for input_type_2_item_data in _input_type_2: def _parse_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -666,11 +681,13 @@ def _parse_redacted_input( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: redacted_input_type_1_item = Message.from_dict(redacted_input_type_1_item_data) @@ -684,9 +701,11 @@ def _parse_redacted_input( raise TypeError() redacted_input_type_2 = [] _redacted_input_type_2 = data + for redacted_input_type_2_item_data in _redacted_input_type_2: def _parse_redacted_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -719,6 +738,7 @@ def _parse_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -732,6 +752,7 @@ def _parse_output( raise TypeError() output_type_2 = [] _output_type_2 = data + for output_type_2_item_data in _output_type_2: output_type_2_item = Document.from_dict(output_type_2_item_data) @@ -745,9 +766,11 @@ def _parse_output( raise TypeError() output_type_3 = [] _output_type_3 = data + for output_type_3_item_data in _output_type_3: def _parse_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -791,6 +814,7 @@ def _parse_redacted_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -804,6 +828,7 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_2 = [] _redacted_output_type_2 = data + for redacted_output_type_2_item_data in _redacted_output_type_2: redacted_output_type_2_item = Document.from_dict(redacted_output_type_2_item_data) @@ -817,9 +842,11 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_3 = [] _redacted_output_type_3 = data + for redacted_output_type_3_item_data in _redacted_output_type_3: def _parse_redacted_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -879,6 +906,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -895,6 +923,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -904,6 +933,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -913,6 +943,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -929,6 +960,7 @@ def _parse_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -946,6 +978,7 @@ def _parse_session_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -963,6 +996,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -972,6 +1006,7 @@ def _parse_project_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -989,6 +1024,7 @@ def _parse_run_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1006,6 +1042,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1023,6 +1060,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -1032,6 +1070,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -1041,6 +1080,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -1062,11 +1102,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -1089,6 +1147,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -1100,15 +1159,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1117,7 +1178,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -1126,6 +1189,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -1147,6 +1211,7 @@ def _parse_metric_info(data: object) -> None | PartialExtendedAgentSpanRecordMet return data if isinstance(data, Unset): return data + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -1220,6 +1285,7 @@ def _parse_files(data: object) -> None | PartialExtendedAgentSpanRecordFilesType return data if isinstance(data, Unset): return data + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -1293,6 +1359,7 @@ def _parse_parent_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1312,22 +1379,35 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) 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)) def _parse_agent_name(data: object) -> None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) agent_name = _parse_agent_name(d.pop("agent_name", UNSET)) diff --git a/src/splunk_ao/resources/models/partial_extended_agent_span_record_metric_info_type_0.py b/src/splunk_ao/resources/models/partial_extended_agent_span_record_metric_info_type_0.py index 148bc2ad..675b33bf 100644 --- a/src/splunk_ao/resources/models/partial_extended_agent_span_record_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/partial_extended_agent_span_record_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() 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 17a1f091..ca5d8b1b 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 @@ -82,7 +82,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 @@ -91,7 +91,7 @@ class PartialExtendedControlSpanRecord: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -104,9 +104,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. @@ -141,13 +141,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -158,8 +158,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) @@ -362,9 +362,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -626,11 +633,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | list[Message] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: input_type_1_item = Message.from_dict(input_type_1_item_data) @@ -644,9 +653,11 @@ def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | lis raise TypeError() input_type_2 = [] _input_type_2 = data + for input_type_2_item_data in _input_type_2: def _parse_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -679,11 +690,13 @@ def _parse_redacted_input( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: redacted_input_type_1_item = Message.from_dict(redacted_input_type_1_item_data) @@ -697,9 +710,11 @@ def _parse_redacted_input( raise TypeError() redacted_input_type_2 = [] _redacted_input_type_2 = data + for redacted_input_type_2_item_data in _redacted_input_type_2: def _parse_redacted_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -730,6 +745,7 @@ def _parse_output(data: object) -> ControlResult | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -747,6 +763,7 @@ def _parse_redacted_output(data: object) -> ControlResult | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -782,6 +799,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -798,6 +816,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -807,6 +826,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -816,6 +836,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -832,6 +853,7 @@ def _parse_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -849,6 +871,7 @@ def _parse_session_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -866,6 +889,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -875,6 +899,7 @@ def _parse_project_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -892,6 +917,7 @@ def _parse_run_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -909,6 +935,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -926,6 +953,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -935,6 +963,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -944,6 +973,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -965,11 +995,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -994,6 +1042,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -1005,15 +1054,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1022,7 +1073,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -1031,6 +1084,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -1052,6 +1106,7 @@ def _parse_metric_info(data: object) -> None | PartialExtendedControlSpanRecordM return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1069,6 +1124,7 @@ def _parse_files(data: object) -> None | PartialExtendedControlSpanRecordFilesTy return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1086,6 +1142,7 @@ def _parse_parent_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1105,6 +1162,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) @@ -1114,6 +1172,7 @@ def _parse_control_id(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) control_id = _parse_control_id(d.pop("control_id", UNSET)) @@ -1123,15 +1182,17 @@ def _parse_agent_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -1140,15 +1201,18 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -1157,7 +1221,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)) @@ -1166,6 +1232,7 @@ def _parse_evaluator_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) evaluator_name = _parse_evaluator_name(d.pop("evaluator_name", UNSET)) @@ -1175,6 +1242,7 @@ def _parse_selector_path(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) selector_path = _parse_selector_path(d.pop("selector_path", UNSET)) diff --git a/src/splunk_ao/resources/models/partial_extended_control_span_record_metric_info_type_0.py b/src/splunk_ao/resources/models/partial_extended_control_span_record_metric_info_type_0.py index fc7e9075..0bd89d24 100644 --- a/src/splunk_ao/resources/models/partial_extended_control_span_record_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/partial_extended_control_span_record_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/partial_extended_http_span_record.py b/src/splunk_ao/resources/models/partial_extended_http_span_record.py index ab0e2e30..0dd1a27b 100644 --- a/src/splunk_ao/resources/models/partial_extended_http_span_record.py +++ b/src/splunk_ao/resources/models/partial_extended_http_span_record.py @@ -80,7 +80,7 @@ class PartialExtendedHttpSpanRecord: annotations (PartialExtendedHttpSpanRecordAnnotations | 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 (PartialExtendedHttpSpanRecordAnnotationAggregates | Unset): Annotation aggregate information keyed by template ID annotation_agreement (PartialExtendedHttpSpanRecordAnnotationAgreement | Unset): Annotation agreement scores @@ -89,7 +89,7 @@ class PartialExtendedHttpSpanRecord: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -133,13 +133,13 @@ class PartialExtendedHttpSpanRecord: feedback_rating_info: PartialExtendedHttpSpanRecordFeedbackRatingInfo | Unset = UNSET annotations: PartialExtendedHttpSpanRecordAnnotations | Unset = UNSET file_ids: list[str] | Unset = UNSET - file_modalities: list[ContentModality] | Unset = UNSET + file_modalities: list[ContentModality | str] | Unset = UNSET annotation_aggregates: PartialExtendedHttpSpanRecordAnnotationAggregates | Unset = UNSET annotation_agreement: PartialExtendedHttpSpanRecordAnnotationAgreement | Unset = UNSET overall_annotation_agreement: float | None | Unset = UNSET annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -385,9 +385,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -592,11 +599,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | list[Message] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: input_type_1_item = Message.from_dict(input_type_1_item_data) @@ -610,9 +619,11 @@ def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | lis raise TypeError() input_type_2 = [] _input_type_2 = data + for input_type_2_item_data in _input_type_2: def _parse_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -645,11 +656,13 @@ def _parse_redacted_input( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: redacted_input_type_1_item = Message.from_dict(redacted_input_type_1_item_data) @@ -663,9 +676,11 @@ def _parse_redacted_input( raise TypeError() redacted_input_type_2 = [] _redacted_input_type_2 = data + for redacted_input_type_2_item_data in _redacted_input_type_2: def _parse_redacted_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -698,6 +713,7 @@ def _parse_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -711,6 +727,7 @@ def _parse_output( raise TypeError() output_type_2 = [] _output_type_2 = data + for output_type_2_item_data in _output_type_2: output_type_2_item = Document.from_dict(output_type_2_item_data) @@ -724,9 +741,11 @@ def _parse_output( raise TypeError() output_type_3 = [] _output_type_3 = data + for output_type_3_item_data in _output_type_3: def _parse_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -770,6 +789,7 @@ def _parse_redacted_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -783,6 +803,7 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_2 = [] _redacted_output_type_2 = data + for redacted_output_type_2_item_data in _redacted_output_type_2: redacted_output_type_2_item = Document.from_dict(redacted_output_type_2_item_data) @@ -796,9 +817,11 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_3 = [] _redacted_output_type_3 = data + for redacted_output_type_3_item_data in _redacted_output_type_3: def _parse_redacted_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -858,6 +881,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -874,6 +898,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -883,6 +908,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -892,6 +918,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -908,6 +935,7 @@ def _parse_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -925,6 +953,7 @@ def _parse_session_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -942,6 +971,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -951,6 +981,7 @@ def _parse_project_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -968,6 +999,7 @@ def _parse_run_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -985,6 +1017,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1002,6 +1035,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -1011,6 +1045,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -1020,6 +1055,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -1041,11 +1077,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -1068,6 +1122,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -1079,15 +1134,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1096,7 +1153,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -1105,6 +1164,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -1126,6 +1186,7 @@ def _parse_metric_info(data: object) -> None | PartialExtendedHttpSpanRecordMetr return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1143,6 +1204,7 @@ def _parse_files(data: object) -> None | PartialExtendedHttpSpanRecordFilesType0 return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1160,6 +1222,7 @@ def _parse_parent_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1179,6 +1242,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) diff --git a/src/splunk_ao/resources/models/partial_extended_http_span_record_metric_info_type_0.py b/src/splunk_ao/resources/models/partial_extended_http_span_record_metric_info_type_0.py index f62d29a5..09d4ebb3 100644 --- a/src/splunk_ao/resources/models/partial_extended_http_span_record_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/partial_extended_http_span_record_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() 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 7a810d12..93042547 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 @@ -78,7 +78,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 @@ -87,7 +87,7 @@ class PartialExtendedLlmSpanRecord: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -136,13 +136,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -343,9 +343,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -645,11 +652,13 @@ def _parse_redacted_input(data: object) -> list[Message] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_0 = [] _redacted_input_type_0 = data + for redacted_input_type_0_item_data in _redacted_input_type_0: redacted_input_type_0_item = Message.from_dict(redacted_input_type_0_item_data) @@ -674,6 +683,7 @@ def _parse_redacted_output(data: object) -> Message | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -709,6 +719,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -725,6 +736,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -734,6 +746,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -743,6 +756,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -759,6 +773,7 @@ def _parse_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -776,6 +791,7 @@ def _parse_session_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -793,6 +809,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -802,6 +819,7 @@ def _parse_project_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -819,6 +837,7 @@ def _parse_run_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -836,6 +855,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -853,6 +873,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -862,6 +883,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -871,6 +893,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -892,11 +915,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -919,6 +960,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -930,15 +972,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -947,7 +991,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -956,6 +1002,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -977,6 +1024,7 @@ def _parse_metric_info(data: object) -> None | PartialExtendedLlmSpanRecordMetri return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -994,6 +1042,7 @@ def _parse_files(data: object) -> None | PartialExtendedLlmSpanRecordFilesType0 return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1011,6 +1060,7 @@ def _parse_parent_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1030,6 +1080,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) @@ -1039,11 +1090,13 @@ def _parse_tools(data: object) -> list[PartialExtendedLlmSpanRecordToolsType0Ite return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() tools_type_0 = [] _tools_type_0 = data + for tools_type_0_item_data in _tools_type_0: tools_type_0_item = PartialExtendedLlmSpanRecordToolsType0Item.from_dict(tools_type_0_item_data) @@ -1076,11 +1129,13 @@ def _parse_events( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() events_type_0 = [] _events_type_0 = data + for events_type_0_item_data in _events_type_0: def _parse_events_type_0_item( @@ -1095,6 +1150,7 @@ def _parse_events_type_0_item( | ReasoningEvent | WebSearchCallEvent ): + try: if not isinstance(data, dict): raise TypeError() @@ -1187,6 +1243,7 @@ def _parse_model(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model = _parse_model(d.pop("model", UNSET)) @@ -1196,6 +1253,7 @@ def _parse_provider(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) provider = _parse_provider(d.pop("provider", UNSET)) @@ -1205,6 +1263,7 @@ def _parse_temperature(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) temperature = _parse_temperature(d.pop("temperature", UNSET)) @@ -1214,6 +1273,7 @@ def _parse_finish_reason(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) finish_reason = _parse_finish_reason(d.pop("finish_reason", UNSET)) diff --git a/src/splunk_ao/resources/models/partial_extended_llm_span_record_metric_info_type_0.py b/src/splunk_ao/resources/models/partial_extended_llm_span_record_metric_info_type_0.py index fcd29eba..c2c3f49a 100644 --- a/src/splunk_ao/resources/models/partial_extended_llm_span_record_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/partial_extended_llm_span_record_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() 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 330d6fa8..945f351a 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 @@ -81,7 +81,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 @@ -90,7 +90,7 @@ class PartialExtendedRetrieverSpanRecord: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -130,13 +130,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -308,9 +308,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -521,6 +528,7 @@ def _parse_redacted_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) redacted_input = _parse_redacted_input(d.pop("redacted_input", UNSET)) @@ -539,11 +547,13 @@ def _parse_redacted_output(data: object) -> list[Document] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_output_type_0 = [] _redacted_output_type_0 = data + for redacted_output_type_0_item_data in _redacted_output_type_0: redacted_output_type_0_item = Document.from_dict(redacted_output_type_0_item_data) @@ -579,6 +589,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -595,6 +606,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -604,6 +616,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -613,6 +626,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -629,6 +643,7 @@ def _parse_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -646,6 +661,7 @@ def _parse_session_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -663,6 +679,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -672,6 +689,7 @@ def _parse_project_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -689,6 +707,7 @@ def _parse_run_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -706,6 +725,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -723,6 +743,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -732,6 +753,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -741,6 +763,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -762,11 +785,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -793,6 +834,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -804,15 +846,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -821,7 +865,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -830,6 +876,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -851,6 +898,7 @@ def _parse_metric_info(data: object) -> None | PartialExtendedRetrieverSpanRecor return data if isinstance(data, Unset): return data + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -924,6 +972,7 @@ def _parse_files(data: object) -> None | PartialExtendedRetrieverSpanRecordFiles return data if isinstance(data, Unset): return data + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -997,6 +1046,7 @@ def _parse_parent_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1016,6 +1066,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) diff --git a/src/splunk_ao/resources/models/partial_extended_retriever_span_record_metric_info_type_0.py b/src/splunk_ao/resources/models/partial_extended_retriever_span_record_metric_info_type_0.py index f64ccba3..3ae29fa1 100644 --- a/src/splunk_ao/resources/models/partial_extended_retriever_span_record_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/partial_extended_retriever_span_record_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() 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 c37790cb..c14e338a 100644 --- a/src/splunk_ao/resources/models/partial_extended_session_record.py +++ b/src/splunk_ao/resources/models/partial_extended_session_record.py @@ -75,7 +75,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 @@ -84,7 +84,7 @@ class PartialExtendedSessionRecord: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -127,13 +127,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -376,9 +376,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -577,11 +584,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | list[Message] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: input_type_1_item = Message.from_dict(input_type_1_item_data) @@ -595,9 +604,11 @@ def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | lis raise TypeError() input_type_2 = [] _input_type_2 = data + for input_type_2_item_data in _input_type_2: def _parse_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -630,11 +641,13 @@ def _parse_redacted_input( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: redacted_input_type_1_item = Message.from_dict(redacted_input_type_1_item_data) @@ -648,9 +661,11 @@ def _parse_redacted_input( raise TypeError() redacted_input_type_2 = [] _redacted_input_type_2 = data + for redacted_input_type_2_item_data in _redacted_input_type_2: def _parse_redacted_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -683,6 +698,7 @@ def _parse_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -696,6 +712,7 @@ def _parse_output( raise TypeError() output_type_2 = [] _output_type_2 = data + for output_type_2_item_data in _output_type_2: output_type_2_item = Document.from_dict(output_type_2_item_data) @@ -709,9 +726,11 @@ def _parse_output( raise TypeError() output_type_3 = [] _output_type_3 = data + for output_type_3_item_data in _output_type_3: def _parse_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -755,6 +774,7 @@ def _parse_redacted_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -768,6 +788,7 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_2 = [] _redacted_output_type_2 = data + for redacted_output_type_2_item_data in _redacted_output_type_2: redacted_output_type_2_item = Document.from_dict(redacted_output_type_2_item_data) @@ -781,9 +802,11 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_3 = [] _redacted_output_type_3 = data + for redacted_output_type_3_item_data in _redacted_output_type_3: def _parse_redacted_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -843,6 +866,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -859,6 +883,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -868,6 +893,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -877,6 +903,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -893,6 +920,7 @@ def _parse_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -910,6 +938,7 @@ def _parse_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_id = _parse_session_id(d.pop("session_id", UNSET)) @@ -919,6 +948,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -928,6 +958,7 @@ def _parse_project_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -945,6 +976,7 @@ def _parse_run_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -962,6 +994,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -979,6 +1012,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -988,6 +1022,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -997,6 +1032,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -1018,11 +1054,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -1045,6 +1099,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -1056,15 +1111,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1073,7 +1130,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -1082,6 +1141,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -1103,6 +1163,7 @@ def _parse_metric_info(data: object) -> None | PartialExtendedSessionRecordMetri return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1120,6 +1181,7 @@ def _parse_files(data: object) -> None | PartialExtendedSessionRecordFilesType0 return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1137,6 +1199,7 @@ def _parse_previous_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) previous_session_id = _parse_previous_session_id(d.pop("previous_session_id", UNSET)) @@ -1146,6 +1209,7 @@ def _parse_num_traces(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_traces = _parse_num_traces(d.pop("num_traces", UNSET)) diff --git a/src/splunk_ao/resources/models/partial_extended_session_record_metric_info_type_0.py b/src/splunk_ao/resources/models/partial_extended_session_record_metric_info_type_0.py index 328b8df7..6dfc1f0b 100644 --- a/src/splunk_ao/resources/models/partial_extended_session_record_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/partial_extended_session_record_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() 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 a2905d80..718e63b4 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 @@ -71,7 +71,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 @@ -80,7 +80,7 @@ class PartialExtendedToolSpanRecord: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -121,13 +121,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -291,9 +291,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -505,6 +512,7 @@ def _parse_redacted_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) redacted_input = _parse_redacted_input(d.pop("redacted_input", UNSET)) @@ -514,6 +522,7 @@ def _parse_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) output = _parse_output(d.pop("output", UNSET)) @@ -523,6 +532,7 @@ def _parse_redacted_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) redacted_output = _parse_redacted_output(d.pop("redacted_output", UNSET)) @@ -550,6 +560,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -566,6 +577,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -575,6 +587,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -584,6 +597,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -600,6 +614,7 @@ def _parse_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -617,6 +632,7 @@ def _parse_session_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -634,6 +650,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -643,6 +660,7 @@ def _parse_project_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -660,6 +678,7 @@ def _parse_run_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -677,6 +696,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -694,6 +714,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -703,6 +724,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -712,6 +734,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -733,11 +756,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -760,6 +801,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -771,15 +813,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -788,7 +832,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -797,6 +843,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -818,6 +865,7 @@ def _parse_metric_info(data: object) -> None | PartialExtendedToolSpanRecordMetr return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -835,6 +883,7 @@ def _parse_files(data: object) -> None | PartialExtendedToolSpanRecordFilesType0 return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -852,6 +901,7 @@ def _parse_parent_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -871,6 +921,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) @@ -880,6 +931,7 @@ def _parse_tool_call_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) tool_call_id = _parse_tool_call_id(d.pop("tool_call_id", UNSET)) diff --git a/src/splunk_ao/resources/models/partial_extended_tool_span_record_metric_info_type_0.py b/src/splunk_ao/resources/models/partial_extended_tool_span_record_metric_info_type_0.py index 63ef3d05..39e8ab68 100644 --- a/src/splunk_ao/resources/models/partial_extended_tool_span_record_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/partial_extended_tool_span_record_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() 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 57f6700a..fb2e642b 100644 --- a/src/splunk_ao/resources/models/partial_extended_trace_record.py +++ b/src/splunk_ao/resources/models/partial_extended_trace_record.py @@ -71,7 +71,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 @@ -80,7 +80,7 @@ class PartialExtendedTraceRecord: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -120,13 +120,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -338,9 +338,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -536,14 +543,17 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: def _parse_input_type_1_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -574,14 +584,17 @@ def _parse_redacted_input(data: object) -> list[FileContentPart | TextContentPar return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: def _parse_redacted_input_type_1_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -612,14 +625,17 @@ def _parse_output(data: object) -> list[FileContentPart | TextContentPart] | Non return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() output_type_1 = [] _output_type_1 = data + for output_type_1_item_data in _output_type_1: def _parse_output_type_1_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -650,14 +666,17 @@ def _parse_redacted_output(data: object) -> list[FileContentPart | TextContentPa return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_output_type_1 = [] _redacted_output_type_1 = data + for redacted_output_type_1_item_data in _redacted_output_type_1: def _parse_redacted_output_type_1_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -706,6 +725,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -722,6 +742,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -731,6 +752,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -740,6 +762,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -756,6 +779,7 @@ def _parse_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -773,6 +797,7 @@ def _parse_session_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -790,6 +815,7 @@ def _parse_trace_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -807,6 +833,7 @@ def _parse_project_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -824,6 +851,7 @@ def _parse_run_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -841,6 +869,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -858,6 +887,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -867,6 +897,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -876,6 +907,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -897,11 +929,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -924,6 +974,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -935,15 +986,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -952,7 +1005,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -961,6 +1016,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -982,6 +1038,7 @@ def _parse_metric_info(data: object) -> None | PartialExtendedTraceRecordMetricI return data if isinstance(data, Unset): return data + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -1055,6 +1112,7 @@ def _parse_files(data: object) -> None | PartialExtendedTraceRecordFilesType0 | return data if isinstance(data, Unset): return data + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -1128,6 +1186,7 @@ def _parse_dataset_generated_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_generated_output = _parse_dataset_generated_output(d.pop("dataset_generated_output", UNSET)) @@ -1139,6 +1198,7 @@ def _parse_num_spans(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_spans = _parse_num_spans(d.pop("num_spans", UNSET)) diff --git a/src/splunk_ao/resources/models/partial_extended_trace_record_metric_info_type_0.py b/src/splunk_ao/resources/models/partial_extended_trace_record_metric_info_type_0.py index 5ba985c9..c93ec816 100644 --- a/src/splunk_ao/resources/models/partial_extended_trace_record_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/partial_extended_trace_record_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() 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 30cf22a0..b1a57dad 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 @@ -85,7 +85,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 @@ -94,7 +94,7 @@ class PartialExtendedWorkflowSpanRecord: queue annotation_queue_ids (list[str] | Unset): IDs of annotation queues this record is in fully_annotated (bool | None | Unset): Whether every field is annotated by every annotator in the queue - annotation_status (AnnotationStatus | None | Unset): Annotation review status of the record + annotation_status (AnnotationStatus | None | str | Unset): Annotation review status of the record annotated_members (list[str] | None | Unset): Emails of tracked queue members who rated the record progress_message (str | Unset): Runner progress text written directly to CH span Default: ''. error_message (str | Unset): Runner error text written directly to CH span Default: ''. @@ -138,13 +138,13 @@ 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 annotation_queue_ids: list[str] | Unset = UNSET fully_annotated: bool | None | Unset = UNSET - annotation_status: AnnotationStatus | None | Unset = UNSET + annotation_status: AnnotationStatus | None | str | Unset = UNSET annotated_members: list[str] | None | Unset = UNSET progress_message: str | Unset = "" error_message: str | Unset = "" @@ -392,9 +392,16 @@ def to_dict(self) -> dict[str, Any]: file_modalities: list[str] | Unset = UNSET if not isinstance(self.file_modalities, Unset): + if not isinstance(self.file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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 @@ -605,11 +612,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | list[Message] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: input_type_1_item = Message.from_dict(input_type_1_item_data) @@ -623,9 +632,11 @@ def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | lis raise TypeError() input_type_2 = [] _input_type_2 = data + for input_type_2_item_data in _input_type_2: def _parse_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -658,11 +669,13 @@ def _parse_redacted_input( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: redacted_input_type_1_item = Message.from_dict(redacted_input_type_1_item_data) @@ -676,9 +689,11 @@ def _parse_redacted_input( raise TypeError() redacted_input_type_2 = [] _redacted_input_type_2 = data + for redacted_input_type_2_item_data in _redacted_input_type_2: def _parse_redacted_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -711,6 +726,7 @@ def _parse_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -724,6 +740,7 @@ def _parse_output( raise TypeError() output_type_2 = [] _output_type_2 = data + for output_type_2_item_data in _output_type_2: output_type_2_item = Document.from_dict(output_type_2_item_data) @@ -737,9 +754,11 @@ def _parse_output( raise TypeError() output_type_3 = [] _output_type_3 = data + for output_type_3_item_data in _output_type_3: def _parse_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -783,6 +802,7 @@ def _parse_redacted_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -796,6 +816,7 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_2 = [] _redacted_output_type_2 = data + for redacted_output_type_2_item_data in _redacted_output_type_2: redacted_output_type_2_item = Document.from_dict(redacted_output_type_2_item_data) @@ -809,9 +830,11 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_3 = [] _redacted_output_type_3 = data + for redacted_output_type_3_item_data in _redacted_output_type_3: def _parse_redacted_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -871,6 +894,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -887,6 +911,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -896,6 +921,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -905,6 +931,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -921,6 +948,7 @@ def _parse_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -938,6 +966,7 @@ def _parse_session_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -955,6 +984,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -964,6 +994,7 @@ def _parse_project_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -981,6 +1012,7 @@ def _parse_run_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -998,6 +1030,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1015,6 +1048,7 @@ def _parse_has_children(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) has_children = _parse_has_children(d.pop("has_children", UNSET)) @@ -1024,6 +1058,7 @@ def _parse_metrics_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_batch_id = _parse_metrics_batch_id(d.pop("metrics_batch_id", UNSET)) @@ -1033,6 +1068,7 @@ def _parse_session_batch_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_batch_id = _parse_session_batch_id(d.pop("session_batch_id", UNSET)) @@ -1054,11 +1090,29 @@ 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: + if not isinstance(_file_modalities, list): + raise TypeError("Unexpected value type for file_modalities") + 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) @@ -1083,6 +1137,7 @@ def _parse_overall_annotation_agreement(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) overall_annotation_agreement = _parse_overall_annotation_agreement(d.pop("overall_annotation_agreement", UNSET)) @@ -1094,15 +1149,17 @@ def _parse_fully_annotated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) fully_annotated = _parse_fully_annotated(d.pop("fully_annotated", UNSET)) - def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: + def _parse_annotation_status(data: object) -> AnnotationStatus | None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1111,7 +1168,9 @@ def _parse_annotation_status(data: object) -> AnnotationStatus | None | Unset: return annotation_status_type_0 except: # noqa: E722 pass - return cast(AnnotationStatus | None | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for annotation_status") + return cast(AnnotationStatus | None | str | Unset, data) annotation_status = _parse_annotation_status(d.pop("annotation_status", UNSET)) @@ -1120,6 +1179,7 @@ def _parse_annotated_members(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -1141,6 +1201,7 @@ def _parse_metric_info(data: object) -> None | PartialExtendedWorkflowSpanRecord return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1158,6 +1219,7 @@ def _parse_files(data: object) -> None | PartialExtendedWorkflowSpanRecordFilesT return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1175,6 +1237,7 @@ def _parse_parent_id(data: object) -> None | Unset | UUID: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -1194,6 +1257,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) diff --git a/src/splunk_ao/resources/models/partial_extended_workflow_span_record_metric_info_type_0.py b/src/splunk_ao/resources/models/partial_extended_workflow_span_record_metric_info_type_0.py index 0f0722df..eb2fd76d 100644 --- a/src/splunk_ao/resources/models/partial_extended_workflow_span_record_metric_info_type_0.py +++ b/src/splunk_ao/resources/models/partial_extended_workflow_span_record_metric_info_type_0.py @@ -95,6 +95,7 @@ def _parse_additional_property( | MetricRollUp | MetricSuccess ): + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/payload.py b/src/splunk_ao/resources/models/payload.py index 9a6793d1..4bf776b2 100644 --- a/src/splunk_ao/resources/models/payload.py +++ b/src/splunk_ao/resources/models/payload.py @@ -24,6 +24,7 @@ class Payload: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + input_: None | str | Unset if isinstance(self.input_, Unset): input_ = UNSET @@ -55,6 +56,7 @@ def _parse_input_(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) input_ = _parse_input_(d.pop("input", UNSET)) @@ -64,6 +66,7 @@ def _parse_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) output = _parse_output(d.pop("output", UNSET)) diff --git a/src/splunk_ao/resources/models/permission.py b/src/splunk_ao/resources/models/permission.py index 94e3c14a..cb4e026b 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 @@ -57,6 +58,7 @@ class Permission: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + action: str if isinstance(self.action, UserAction): action = self.action.value @@ -84,8 +86,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,8 +127,10 @@ def _parse_action( | ProjectAction | RegisteredScorerAction | ScorerAction + | str | UserAction ): + try: if not isinstance(data, str): raise TypeError() @@ -229,11 +235,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")) @@ -244,6 +273,7 @@ def _parse_message(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) message = _parse_message(d.pop("message", UNSET)) diff --git a/src/splunk_ao/resources/models/preview_dataset_request.py b/src/splunk_ao/resources/models/preview_dataset_request.py index 98b9bf13..0ba63f71 100644 --- a/src/splunk_ao/resources/models/preview_dataset_request.py +++ b/src/splunk_ao/resources/models/preview_dataset_request.py @@ -55,6 +55,7 @@ def _parse_column_mapping(data: object) -> ColumnMapping | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/project_collaborator_update.py b/src/splunk_ao/resources/models/project_collaborator_update.py index d051fed8..a600d297 100644 --- a/src/splunk_ao/resources/models/project_collaborator_update.py +++ b/src/splunk_ao/resources/models/project_collaborator_update.py @@ -16,16 +16,21 @@ class ProjectCollaboratorUpdate: """ Attributes: - role (CollaboratorRole): + role (CollaboratorRole | str): custom_access_level_id (None | str | Unset): """ - role: CollaboratorRole + role: CollaboratorRole | str custom_access_level_id: None | str | 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 custom_access_level_id: None | str | Unset if isinstance(self.custom_access_level_id, Unset): @@ -44,13 +49,29 @@ 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_custom_access_level_id(data: object) -> None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) custom_access_level_id = _parse_custom_access_level_id(d.pop("custom_access_level_id", UNSET)) diff --git a/src/splunk_ao/resources/models/project_collection_params.py b/src/splunk_ao/resources/models/project_collection_params.py index 31f92933..531d0039 100644 --- a/src/splunk_ao/resources/models/project_collection_params.py +++ b/src/splunk_ao/resources/models/project_collection_params.py @@ -178,6 +178,7 @@ def _parse_filters_item( | ProjectTypeFilter | ProjectUpdatedAtFilter ): + try: if not isinstance(data, dict): raise TypeError() @@ -260,6 +261,7 @@ def _parse_sort( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/project_create.py b/src/splunk_ao/resources/models/project_create.py index 94a0245d..6ad41f67 100644 --- a/src/splunk_ao/resources/models/project_create.py +++ b/src/splunk_ao/resources/models/project_create.py @@ -18,12 +18,12 @@ class ProjectCreate: Attributes: name (str): created_by (None | str | Unset): - type_ (ProjectType | Unset): + type_ (ProjectType | str | Unset): """ name: str created_by: None | str | Unset = UNSET - type_: ProjectType | Unset = UNSET + type_: ProjectType | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -35,9 +35,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_ field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -59,16 +63,28 @@ def _parse_created_by(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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)) project_create = cls(name=name, created_by=created_by, type_=type_) diff --git a/src/splunk_ao/resources/models/project_create_response.py b/src/splunk_ao/resources/models/project_create_response.py index 84c88c6e..0d2590ad 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]: @@ -86,6 +86,7 @@ def _parse_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) name = _parse_name(d.pop("name", UNSET)) @@ -95,15 +96,17 @@ def _parse_created_by(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -112,7 +115,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..64a6fca3 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,23 @@ 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 +50,22 @@ 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..d6685aee 100644 --- a/src/splunk_ao/resources/models/project_creator_filter.py +++ b/src/splunk_ao/resources/models/project_creator_filter.py @@ -18,15 +18,16 @@ 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]: + value: list[str] | str if isinstance(self.value, list): value = [] @@ -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, ProjectCreatorFilterOperator): operator = self.operator.value + else: + operator = self.operator field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -59,14 +64,17 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) def _parse_value(data: object) -> list[str] | str: + try: if not isinstance(data, list): raise TypeError() value_type_1 = [] _value_type_1 = data + for value_type_1_item_data in _value_type_1: def _parse_value_type_1_item(data: object) -> str: + return cast(str, data) value_type_1_item = _parse_value_type_1_item(value_type_1_item_data) @@ -84,12 +92,23 @@ 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..ca7adf02 100644 --- a/src/splunk_ao/resources/models/project_db.py +++ b/src/splunk_ao/resources/models/project_db.py @@ -32,10 +32,10 @@ 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): + labels (list[ProjectLabels | str] | Unset): """ id: str @@ -46,10 +46,10 @@ 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 + labels: list[ProjectLabels | str] | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -99,9 +99,16 @@ def to_dict(self) -> dict[str, Any]: labels: list[str] | Unset = UNSET if not isinstance(self.labels, Unset): + if not isinstance(self.labels, list): + raise TypeError("Unexpected value type for labels") + labels = [] for labels_item_data in self.labels: - labels_item = labels_item_data.value + labels_item: str + if isinstance(labels_item_data, ProjectLabels): + labels_item = labels_item_data.value + else: + labels_item = labels_item_data labels.append(labels_item) field_dict: dict[str, Any] = {} @@ -146,6 +153,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: runs = [] _runs = d.pop("runs") + for runs_item_data in _runs: runs_item = RunDB.from_dict(runs_item_data) @@ -169,15 +177,17 @@ def _parse_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -186,7 +196,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)) @@ -197,16 +209,35 @@ def _parse_description(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) description = _parse_description(d.pop("description", UNSET)) _labels = d.pop("labels", UNSET) - labels: list[ProjectLabels] | Unset = UNSET + labels: list[ProjectLabels | str] | Unset = UNSET if _labels is not UNSET: + if not isinstance(_labels, list): + raise TypeError("Unexpected value type for labels") + labels = [] for labels_item_data in _labels: - labels_item = ProjectLabels(labels_item_data) + + def _parse_labels_item(data: object) -> ProjectLabels | str: + + try: + if not isinstance(data, str): + raise TypeError() + labels_item_type_0 = ProjectLabels(data) + + return labels_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for labels_item") + return cast(ProjectLabels | str, data) + + labels_item = _parse_labels_item(labels_item_data) labels.append(labels_item) diff --git a/src/splunk_ao/resources/models/project_db_thin.py b/src/splunk_ao/resources/models/project_db_thin.py index 624b9ffc..3c820943 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) @@ -109,6 +109,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: runs = [] _runs = d.pop("runs") + for runs_item_data in _runs: runs_item = RunDBThin.from_dict(runs_item_data) @@ -132,15 +133,17 @@ def _parse_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -149,7 +152,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_group_collaborator.py b/src/splunk_ao/resources/models/project_group_collaborator.py index 79aedb2d..1a95710e 100644 --- a/src/splunk_ao/resources/models/project_group_collaborator.py +++ b/src/splunk_ao/resources/models/project_group_collaborator.py @@ -23,7 +23,7 @@ class ProjectGroupCollaborator: """ Attributes: id (str): - role (CollaboratorRole): + role (CollaboratorRole | str): created_at (datetime.datetime): group_id (str): group_name (str): @@ -33,7 +33,7 @@ class ProjectGroupCollaborator: """ id: str - role: CollaboratorRole + role: CollaboratorRole | str created_at: datetime.datetime group_id: str group_name: str @@ -47,7 +47,11 @@ 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() @@ -98,7 +102,21 @@ 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")) @@ -120,6 +138,7 @@ def _parse_custom_access_level_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) custom_access_level_id = _parse_custom_access_level_id(d.pop("custom_access_level_id", UNSET)) @@ -129,6 +148,7 @@ def _parse_custom_access_level(data: object) -> None | ProjectCustomAccessLevelS return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/project_group_collaborator_create.py b/src/splunk_ao/resources/models/project_group_collaborator_create.py index 89df594c..91c1736f 100644 --- a/src/splunk_ao/resources/models/project_group_collaborator_create.py +++ b/src/splunk_ao/resources/models/project_group_collaborator_create.py @@ -17,21 +17,25 @@ class ProjectGroupCollaboratorCreate: """ Attributes: group_id (str): - role (CollaboratorRole | Unset): + role (CollaboratorRole | str | Unset): custom_access_level_id (None | str | Unset): """ group_id: str - role: CollaboratorRole | Unset = UNSET + role: CollaboratorRole | str | Unset = UNSET custom_access_level_id: None | 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 custom_access_level_id: None | str | Unset if isinstance(self.custom_access_level_id, Unset): @@ -54,18 +58,30 @@ 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)) def _parse_custom_access_level_id(data: object) -> None | str | Unset: if data is None: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) custom_access_level_id = _parse_custom_access_level_id(d.pop("custom_access_level_id", 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..a3042483 100644 --- a/src/splunk_ao/resources/models/project_id_filter.py +++ b/src/splunk_ao/resources/models/project_id_filter.py @@ -18,15 +18,16 @@ 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]: + value: list[str] | str if isinstance(self.value, list): value = [] @@ -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, ProjectIDFilterOperator): operator = self.operator.value + else: + operator = self.operator field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -59,14 +64,17 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) def _parse_value(data: object) -> list[str] | str: + try: if not isinstance(data, list): raise TypeError() value_type_1 = [] _value_type_1 = data + for value_type_1_item_data in _value_type_1: def _parse_value_type_1_item(data: object) -> str: + return cast(str, data) value_type_1_item = _parse_value_type_1_item(value_type_1_item_data) @@ -84,12 +92,23 @@ 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_integration_costs.py b/src/splunk_ao/resources/models/project_integration_costs.py index 4047b908..91d40b89 100644 --- a/src/splunk_ao/resources/models/project_integration_costs.py +++ b/src/splunk_ao/resources/models/project_integration_costs.py @@ -79,6 +79,7 @@ def _parse_run_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) run_id = _parse_run_id(d.pop("run_id", UNSET)) diff --git a/src/splunk_ao/resources/models/project_item.py b/src/splunk_ao/resources/models/project_item.py index f0de56b4..97dbd059 100644 --- a/src/splunk_ao/resources/models/project_item.py +++ b/src/splunk_ao/resources/models/project_item.py @@ -34,7 +34,7 @@ class ProjectItem: num_experiments (int | None | Unset): Count of runs with task_type=16 created_by_user (None | Unset | UserInfo): description (None | str | Unset): - labels (list[ProjectLabels] | Unset): List of labels associated with the project. + labels (list[ProjectLabels | str] | Unset): List of labels associated with the project. log_streams (list[LogStreamInfo] | None | Unset): Log streams for this project. Only populated when include_logstreams=True. """ @@ -49,7 +49,7 @@ class ProjectItem: num_experiments: int | None | Unset = UNSET created_by_user: None | Unset | UserInfo = UNSET description: None | str | Unset = UNSET - labels: list[ProjectLabels] | Unset = UNSET + labels: list[ProjectLabels | str] | Unset = UNSET log_streams: list[LogStreamInfo] | None | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -101,9 +101,16 @@ def to_dict(self) -> dict[str, Any]: labels: list[str] | Unset = UNSET if not isinstance(self.labels, Unset): + if not isinstance(self.labels, list): + raise TypeError("Unexpected value type for labels") + labels = [] for labels_item_data in self.labels: - labels_item = labels_item_data.value + labels_item: str + if isinstance(labels_item_data, ProjectLabels): + labels_item = labels_item_data.value + else: + labels_item = labels_item_data labels.append(labels_item) log_streams: list[dict[str, Any]] | None | Unset @@ -171,6 +178,7 @@ def _parse_num_logstreams(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_logstreams = _parse_num_logstreams(d.pop("num_logstreams", UNSET)) @@ -180,6 +188,7 @@ def _parse_num_experiments(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_experiments = _parse_num_experiments(d.pop("num_experiments", UNSET)) @@ -189,6 +198,7 @@ def _parse_created_by_user(data: object) -> None | Unset | UserInfo: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -206,16 +216,35 @@ def _parse_description(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) description = _parse_description(d.pop("description", UNSET)) _labels = d.pop("labels", UNSET) - labels: list[ProjectLabels] | Unset = UNSET + labels: list[ProjectLabels | str] | Unset = UNSET if _labels is not UNSET: + if not isinstance(_labels, list): + raise TypeError("Unexpected value type for labels") + labels = [] for labels_item_data in _labels: - labels_item = ProjectLabels(labels_item_data) + + def _parse_labels_item(data: object) -> ProjectLabels | str: + + try: + if not isinstance(data, str): + raise TypeError() + labels_item_type_0 = ProjectLabels(data) + + return labels_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for labels_item") + return cast(ProjectLabels | str, data) + + labels_item = _parse_labels_item(labels_item_data) labels.append(labels_item) @@ -224,11 +253,13 @@ def _parse_log_streams(data: object) -> list[LogStreamInfo] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() log_streams_type_0 = [] _log_streams_type_0 = data + for log_streams_type_0_item_data in _log_streams_type_0: log_streams_type_0_item = LogStreamInfo.from_dict(log_streams_type_0_item_data) diff --git a/src/splunk_ao/resources/models/project_name_filter.py b/src/splunk_ao/resources/models/project_name_filter.py index 210ef010..534da3b9 100644 --- a/src/splunk_ao/resources/models/project_name_filter.py +++ b/src/splunk_ao/resources/models/project_name_filter.py @@ -16,20 +16,25 @@ 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,9 +60,25 @@ 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: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/project_runs_filter.py b/src/splunk_ao/resources/models/project_runs_filter.py index 1f7c786e..f2544f0f 100644 --- a/src/splunk_ao/resources/models/project_runs_filter.py +++ b/src/splunk_ao/resources/models/project_runs_filter.py @@ -16,18 +16,23 @@ 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,9 +57,25 @@ 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: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/project_type_filter.py b/src/splunk_ao/resources/models/project_type_filter.py index 5558bb7d..cee8947c 100644 --- a/src/splunk_ao/resources/models/project_type_filter.py +++ b/src/splunk_ao/resources/models/project_type_filter.py @@ -16,18 +16,23 @@ 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,9 +54,25 @@ 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: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/project_update.py b/src/splunk_ao/resources/models/project_update.py index 2216de85..df79286f 100644 --- a/src/splunk_ao/resources/models/project_update.py +++ b/src/splunk_ao/resources/models/project_update.py @@ -24,6 +24,7 @@ class ProjectUpdate: description: None | str | Unset = UNSET def to_dict(self) -> dict[str, Any]: + name: None | str | Unset if isinstance(self.name, Unset): name = UNSET @@ -66,6 +67,7 @@ def _parse_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) name = _parse_name(d.pop("name", UNSET)) @@ -75,6 +77,7 @@ def _parse_labels(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -92,6 +95,7 @@ def _parse_description(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) description = _parse_description(d.pop("description", UNSET)) diff --git a/src/splunk_ao/resources/models/project_update_response.py b/src/splunk_ao/resources/models/project_update_response.py index bde5a554..88f325ea 100644 --- a/src/splunk_ao/resources/models/project_update_response.py +++ b/src/splunk_ao/resources/models/project_update_response.py @@ -23,8 +23,8 @@ class ProjectUpdateResponse: updated_at (datetime.datetime): name (None | str | Unset): created_by (None | str | Unset): - type_ (None | ProjectType | Unset): - labels (list[ProjectLabels] | Unset): + type_ (None | ProjectType | str | Unset): + labels (list[ProjectLabels | str] | Unset): description (None | str | Unset): """ @@ -33,8 +33,8 @@ class ProjectUpdateResponse: updated_at: datetime.datetime name: None | str | Unset = UNSET created_by: None | str | Unset = UNSET - type_: None | ProjectType | Unset = UNSET - labels: list[ProjectLabels] | Unset = UNSET + type_: None | ProjectType | str | Unset = UNSET + labels: list[ProjectLabels | str] | Unset = UNSET description: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -67,9 +67,16 @@ def to_dict(self) -> dict[str, Any]: labels: list[str] | Unset = UNSET if not isinstance(self.labels, Unset): + if not isinstance(self.labels, list): + raise TypeError("Unexpected value type for labels") + labels = [] for labels_item_data in self.labels: - labels_item = labels_item_data.value + labels_item: str + if isinstance(labels_item_data, ProjectLabels): + labels_item = labels_item_data.value + else: + labels_item = labels_item_data labels.append(labels_item) description: None | str | Unset @@ -108,6 +115,7 @@ def _parse_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) name = _parse_name(d.pop("name", UNSET)) @@ -117,15 +125,17 @@ def _parse_created_by(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -134,16 +144,36 @@ 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)) _labels = d.pop("labels", UNSET) - labels: list[ProjectLabels] | Unset = UNSET + labels: list[ProjectLabels | str] | Unset = UNSET if _labels is not UNSET: + if not isinstance(_labels, list): + raise TypeError("Unexpected value type for labels") + labels = [] for labels_item_data in _labels: - labels_item = ProjectLabels(labels_item_data) + + def _parse_labels_item(data: object) -> ProjectLabels | str: + + try: + if not isinstance(data, str): + raise TypeError() + labels_item_type_0 = ProjectLabels(data) + + return labels_item_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for labels_item") + return cast(ProjectLabels | str, data) + + labels_item = _parse_labels_item(labels_item_data) labels.append(labels_item) @@ -152,6 +182,7 @@ def _parse_description(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) description = _parse_description(d.pop("description", 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..63033710 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,23 @@ 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 +50,22 @@ 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/project_user_collaborator.py b/src/splunk_ao/resources/models/project_user_collaborator.py index 19342502..4653e8db 100644 --- a/src/splunk_ao/resources/models/project_user_collaborator.py +++ b/src/splunk_ao/resources/models/project_user_collaborator.py @@ -23,7 +23,7 @@ class ProjectUserCollaborator: """ Attributes: id (str): - role (CollaboratorRole): + role (CollaboratorRole | str): created_at (datetime.datetime): user_id (str): first_name (None | str): @@ -35,7 +35,7 @@ class ProjectUserCollaborator: """ id: str - role: CollaboratorRole + role: CollaboratorRole | str created_at: datetime.datetime user_id: str first_name: None | str @@ -51,7 +51,11 @@ 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() @@ -116,7 +120,21 @@ 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")) @@ -125,6 +143,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_first_name(data: object) -> None | str: if data is None: return data + return cast(None | str, data) first_name = _parse_first_name(d.pop("first_name")) @@ -132,6 +151,7 @@ def _parse_first_name(data: object) -> None | str: def _parse_last_name(data: object) -> None | str: if data is None: return data + return cast(None | str, data) last_name = _parse_last_name(d.pop("last_name")) @@ -152,6 +172,7 @@ def _parse_custom_access_level_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) custom_access_level_id = _parse_custom_access_level_id(d.pop("custom_access_level_id", UNSET)) @@ -161,6 +182,7 @@ def _parse_custom_access_level(data: object) -> None | ProjectCustomAccessLevelS return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/project_user_collaborator_create.py b/src/splunk_ao/resources/models/project_user_collaborator_create.py index ae707aba..78ce041f 100644 --- a/src/splunk_ao/resources/models/project_user_collaborator_create.py +++ b/src/splunk_ao/resources/models/project_user_collaborator_create.py @@ -16,22 +16,27 @@ class ProjectUserCollaboratorCreate: """ Attributes: - role (CollaboratorRole | Unset): + role (CollaboratorRole | str | Unset): user_id (None | str | Unset): user_email (None | str | Unset): custom_access_level_id (None | str | Unset): """ - role: CollaboratorRole | Unset = UNSET + role: CollaboratorRole | str | Unset = UNSET user_id: None | str | Unset = UNSET user_email: None | str | Unset = UNSET custom_access_level_id: 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): @@ -68,18 +73,31 @@ 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) user_id = _parse_user_id(d.pop("user_id", UNSET)) @@ -89,6 +107,7 @@ def _parse_user_email(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) user_email = _parse_user_email(d.pop("user_email", UNSET)) @@ -98,6 +117,7 @@ def _parse_custom_access_level_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) custom_access_level_id = _parse_custom_access_level_id(d.pop("custom_access_level_id", UNSET)) diff --git a/src/splunk_ao/resources/models/prompt_injection_scorer.py b/src/splunk_ao/resources/models/prompt_injection_scorer.py index bc8d3b6d..3b31d076 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): @@ -110,14 +114,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() @@ -151,18 +158,30 @@ 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", UNSET)) @@ -172,6 +191,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) diff --git a/src/splunk_ao/resources/models/prompt_run_settings.py b/src/splunk_ao/resources/models/prompt_run_settings.py index d53255b1..8445ddbc 100644 --- a/src/splunk_ao/resources/models/prompt_run_settings.py +++ b/src/splunk_ao/resources/models/prompt_run_settings.py @@ -218,6 +218,7 @@ def _parse_deployment_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) deployment_name = _parse_deployment_name(d.pop("deployment_name", UNSET)) @@ -229,6 +230,7 @@ def _parse_temperature(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) temperature = _parse_temperature(d.pop("temperature", UNSET)) @@ -240,6 +242,7 @@ def _parse_stop_sequences(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -265,11 +268,13 @@ def _parse_tools(data: object) -> list[PromptRunSettingsToolsType0Item] | None | return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() tools_type_0 = [] _tools_type_0 = data + for tools_type_0_item_data in _tools_type_0: tools_type_0_item = PromptRunSettingsToolsType0Item.from_dict(tools_type_0_item_data) @@ -287,6 +292,7 @@ def _parse_tool_choice(data: object) -> None | OpenAIToolChoice | str | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -304,6 +310,7 @@ def _parse_response_format(data: object) -> None | PromptRunSettingsResponseForm return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() 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..449815d2 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,15 +18,17 @@ 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]: + value: list[str] | str if isinstance(self.value, list): value = [] @@ -40,9 +42,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) @@ -59,14 +65,17 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) def _parse_value(data: object) -> list[str] | str: + try: if not isinstance(data, list): raise TypeError() value_type_1 = [] _value_type_1 = data + for value_type_1_item_data in _value_type_1: def _parse_value_type_1_item(data: object) -> str: + return cast(str, data) value_type_1_item = _parse_value_type_1_item(value_type_1_item_data) @@ -84,12 +93,23 @@ 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..2d5e837e 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,25 @@ 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,9 +60,25 @@ 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: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/protect_request.py b/src/splunk_ao/resources/models/protect_request.py index 82d4ef0b..9e0d239d 100644 --- a/src/splunk_ao/resources/models/protect_request.py +++ b/src/splunk_ao/resources/models/protect_request.py @@ -160,6 +160,7 @@ def _parse_project_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) project_name = _parse_project_name(d.pop("project_name", UNSET)) @@ -169,6 +170,7 @@ def _parse_project_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) project_id = _parse_project_id(d.pop("project_id", UNSET)) @@ -178,6 +180,7 @@ def _parse_stage_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) stage_name = _parse_stage_name(d.pop("stage_name", UNSET)) @@ -187,6 +190,7 @@ def _parse_stage_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) stage_id = _parse_stage_id(d.pop("stage_id", UNSET)) @@ -196,6 +200,7 @@ def _parse_stage_version(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) stage_version = _parse_stage_version(d.pop("stage_version", UNSET)) @@ -207,6 +212,7 @@ def _parse_metadata(data: object) -> None | ProtectRequestMetadataType0 | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -224,6 +230,7 @@ def _parse_headers(data: object) -> None | ProtectRequestHeadersType0 | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/protect_response.py b/src/splunk_ao/resources/models/protect_response.py index 554d30f2..ff25e69e 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,23 @@ 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/query_dataset_params.py b/src/splunk_ao/resources/models/query_dataset_params.py index 0d9bba13..883ba5b6 100644 --- a/src/splunk_ao/resources/models/query_dataset_params.py +++ b/src/splunk_ao/resources/models/query_dataset_params.py @@ -76,6 +76,7 @@ def _parse_sort(data: object) -> DatasetContentSortClause | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/reasoning_event.py b/src/splunk_ao/resources/models/reasoning_event.py index e481c009..32182de5 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 @@ -126,15 +126,17 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -143,7 +145,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)) @@ -152,6 +156,7 @@ def _parse_metadata(data: object) -> None | ReasoningEventMetadataType0 | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -169,6 +174,7 @@ def _parse_error_message(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) error_message = _parse_error_message(d.pop("error_message", UNSET)) @@ -178,6 +184,7 @@ def _parse_content(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) content = _parse_content(d.pop("content", UNSET)) @@ -187,11 +194,13 @@ def _parse_summary(data: object) -> list[ReasoningEventSummaryType1Item] | None return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() summary_type_1 = [] _summary_type_1 = data + for summary_type_1_item_data in _summary_type_1: summary_type_1_item = ReasoningEventSummaryType1Item.from_dict(summary_type_1_item_data) diff --git a/src/splunk_ao/resources/models/recompute_log_records_metrics_request.py b/src/splunk_ao/resources/models/recompute_log_records_metrics_request.py index 59b8eb08..b3a22e2c 100644 --- a/src/splunk_ao/resources/models/recompute_log_records_metrics_request.py +++ b/src/splunk_ao/resources/models/recompute_log_records_metrics_request.py @@ -237,6 +237,7 @@ def _parse_previous_last_row_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) previous_last_row_id = _parse_previous_last_row_id(d.pop("previous_last_row_id", UNSET)) @@ -246,6 +247,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -255,6 +257,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -264,6 +267,7 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) @@ -296,6 +300,7 @@ def _parse_filters_item( | LogRecordsNumberFilter | LogRecordsTextFilter ): + try: if not isinstance(data, dict): raise TypeError() @@ -368,6 +373,7 @@ def _parse_filter_tree( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -425,6 +431,7 @@ def _parse_sort(data: object) -> LogRecordsSortClause | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() 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..d26f1b29 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,13 +77,28 @@ 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: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/remove_records_from_queue_request.py b/src/splunk_ao/resources/models/remove_records_from_queue_request.py index 90c417f1..49b47367 100644 --- a/src/splunk_ao/resources/models/remove_records_from_queue_request.py +++ b/src/splunk_ao/resources/models/remove_records_from_queue_request.py @@ -51,6 +51,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_record_selector( data: object, ) -> AnnotationQueueRecordsByFilterTree | AnnotationQueueRecordsByRecordIDs: + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/render_template_request.py b/src/splunk_ao/resources/models/render_template_request.py index 49f3f8ce..6d30f2b0 100644 --- a/src/splunk_ao/resources/models/render_template_request.py +++ b/src/splunk_ao/resources/models/render_template_request.py @@ -52,6 +52,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: template = d.pop("template") def _parse_data(data: object) -> DatasetData | StringData: + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/render_template_response.py b/src/splunk_ao/resources/models/render_template_response.py index 3b6921fb..fa1665a5 100644 --- a/src/splunk_ao/resources/models/render_template_response.py +++ b/src/splunk_ao/resources/models/render_template_response.py @@ -34,6 +34,7 @@ class RenderTemplateResponse: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + rendered_templates = [] for rendered_templates_item_data in self.rendered_templates: rendered_templates_item = rendered_templates_item_data.to_dict() @@ -72,6 +73,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) rendered_templates = [] _rendered_templates = d.pop("rendered_templates") + for rendered_templates_item_data in _rendered_templates: rendered_templates_item = RenderedTemplate.from_dict(rendered_templates_item_data) @@ -88,6 +90,7 @@ def _parse_next_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) next_starting_token = _parse_next_starting_token(d.pop("next_starting_token", UNSET)) diff --git a/src/splunk_ao/resources/models/rendered_template.py b/src/splunk_ao/resources/models/rendered_template.py index 81d171b7..e9218eab 100644 --- a/src/splunk_ao/resources/models/rendered_template.py +++ b/src/splunk_ao/resources/models/rendered_template.py @@ -50,6 +50,7 @@ def _parse_warning(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) warning = _parse_warning(d.pop("warning", UNSET)) diff --git a/src/splunk_ao/resources/models/retriever_span.py b/src/splunk_ao/resources/models/retriever_span.py index 33cfbd38..1aefad07 100644 --- a/src/splunk_ao/resources/models/retriever_span.py +++ b/src/splunk_ao/resources/models/retriever_span.py @@ -283,6 +283,7 @@ def _parse_redacted_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) redacted_input = _parse_redacted_input(d.pop("redacted_input", UNSET)) @@ -301,11 +302,13 @@ def _parse_redacted_output(data: object) -> list[Document] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_output_type_0 = [] _redacted_output_type_0 = data + for redacted_output_type_0_item_data in _redacted_output_type_0: redacted_output_type_0_item = Document.from_dict(redacted_output_type_0_item_data) @@ -341,6 +344,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -357,6 +361,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -366,6 +371,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -375,6 +381,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -391,6 +398,7 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) id = _parse_id(d.pop("id", UNSET)) @@ -400,6 +408,7 @@ def _parse_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_id = _parse_session_id(d.pop("session_id", UNSET)) @@ -409,6 +418,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -418,6 +428,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) @@ -427,6 +438,7 @@ def _parse_parent_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) parent_id = _parse_parent_id(d.pop("parent_id", UNSET)) @@ -442,6 +454,7 @@ def _parse_parent_id(data: object) -> None | str | Unset: def _parse_spans_item( data: object, ) -> AgentSpan | ControlSpan | HttpSpan | LlmSpan | RetrieverSpan | ToolSpan | WorkflowSpan: + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/rule.py b/src/splunk_ao/resources/models/rule.py index 0a4f221a..deaa0f9f 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,11 +52,26 @@ 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: return data + try: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/rule_result.py b/src/splunk_ao/resources/models/rule_result.py index b37a9ab6..e9ce0c24 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,11 +86,26 @@ 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: return data + try: if not isinstance(data, list): raise TypeError() @@ -95,18 +118,30 @@ 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: return data if isinstance(data, Unset): return data + return cast(Any | None | Unset, data) value = _parse_value(d.pop("value", UNSET)) @@ -116,6 +151,7 @@ def _parse_execution_time(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) execution_time = _parse_execution_time(d.pop("execution_time", UNSET)) diff --git a/src/splunk_ao/resources/models/ruleset.py b/src/splunk_ao/resources/models/ruleset.py index 5ec6eabe..fd0917a5 100644 --- a/src/splunk_ao/resources/models/ruleset.py +++ b/src/splunk_ao/resources/models/ruleset.py @@ -86,6 +86,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_action(data: object) -> OverrideAction | PassthroughAction | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -107,6 +108,7 @@ def _parse_description(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) description = _parse_description(d.pop("description", UNSET)) diff --git a/src/splunk_ao/resources/models/ruleset_result.py b/src/splunk_ao/resources/models/ruleset_result.py index 605f8a80..03f238a2 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,24 @@ 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 @@ -115,6 +131,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_action(data: object) -> OverrideAction | PassthroughAction | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -136,6 +153,7 @@ def _parse_description(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) description = _parse_description(d.pop("description", 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..a24d2f71 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,23 @@ 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 +50,22 @@ 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..5ac28090 100644 --- a/src/splunk_ao/resources/models/run_created_by_filter.py +++ b/src/splunk_ao/resources/models/run_created_by_filter.py @@ -18,15 +18,16 @@ 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]: + value: list[str] | str if isinstance(self.value, list): value = [] @@ -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, RunCreatedByFilterOperator): operator = self.operator.value + else: + operator = self.operator field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -59,14 +64,17 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) def _parse_value(data: object) -> list[str] | str: + try: if not isinstance(data, list): raise TypeError() value_type_1 = [] _value_type_1 = data + for value_type_1_item_data in _value_type_1: def _parse_value_type_1_item(data: object) -> str: + return cast(str, data) value_type_1_item = _parse_value_type_1_item(value_type_1_item_data) @@ -84,12 +92,23 @@ 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..1e1045b4 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 @@ -202,6 +202,7 @@ def _parse_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) name = _parse_name(d.pop("name", UNSET)) @@ -211,6 +212,7 @@ def _parse_project_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) project_id = _parse_project_id(d.pop("project_id", UNSET)) @@ -220,6 +222,7 @@ def _parse_dataset_hash(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_hash = _parse_dataset_hash(d.pop("dataset_hash", UNSET)) @@ -229,6 +232,7 @@ def _parse_dataset_version_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_version_id = _parse_dataset_version_id(d.pop("dataset_version_id", UNSET)) @@ -238,15 +242,17 @@ def _parse_prompt_template_version_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, int): raise TypeError() @@ -255,7 +261,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)) @@ -273,6 +281,7 @@ def _parse_example_content_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) example_content_id = _parse_example_content_id(d.pop("example_content_id", 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..9a1eadc7 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 @@ -202,6 +202,7 @@ def _parse_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) name = _parse_name(d.pop("name", UNSET)) @@ -211,6 +212,7 @@ def _parse_project_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) project_id = _parse_project_id(d.pop("project_id", UNSET)) @@ -220,6 +222,7 @@ def _parse_dataset_hash(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_hash = _parse_dataset_hash(d.pop("dataset_hash", UNSET)) @@ -229,6 +232,7 @@ def _parse_dataset_version_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_version_id = _parse_dataset_version_id(d.pop("dataset_version_id", UNSET)) @@ -238,15 +242,17 @@ def _parse_prompt_template_version_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, int): raise TypeError() @@ -255,7 +261,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)) @@ -273,6 +281,7 @@ def _parse_example_content_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) example_content_id = _parse_example_content_id(d.pop("example_content_id", 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..c823ae8b 100644 --- a/src/splunk_ao/resources/models/run_id_filter.py +++ b/src/splunk_ao/resources/models/run_id_filter.py @@ -18,15 +18,16 @@ 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]: + value: list[str] | str if isinstance(self.value, list): value = [] @@ -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, RunIDFilterOperator): operator = self.operator.value + else: + operator = self.operator field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -59,14 +64,17 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) def _parse_value(data: object) -> list[str] | str: + try: if not isinstance(data, list): raise TypeError() value_type_1 = [] _value_type_1 = data + for value_type_1_item_data in _value_type_1: def _parse_value_type_1_item(data: object) -> str: + return cast(str, data) value_type_1_item = _parse_value_type_1_item(value_type_1_item_data) @@ -84,12 +92,23 @@ 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..9741c65c 100644 --- a/src/splunk_ao/resources/models/run_name_filter.py +++ b/src/splunk_ao/resources/models/run_name_filter.py @@ -16,20 +16,25 @@ 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,9 +60,25 @@ 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: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/run_params_map.py b/src/splunk_ao/resources/models/run_params_map.py index cd21011a..eef5376f 100644 --- a/src/splunk_ao/resources/models/run_params_map.py +++ b/src/splunk_ao/resources/models/run_params_map.py @@ -60,6 +60,7 @@ class RunParamsMap: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + model: None | str | Unset if isinstance(self.model, Unset): model = UNSET @@ -227,6 +228,7 @@ def _parse_model(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model = _parse_model(d.pop("model", UNSET)) @@ -236,6 +238,7 @@ def _parse_temperature(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) temperature = _parse_temperature(d.pop("temperature", UNSET)) @@ -245,6 +248,7 @@ def _parse_max_tokens(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) max_tokens = _parse_max_tokens(d.pop("max_tokens", UNSET)) @@ -254,6 +258,7 @@ def _parse_stop_sequences(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) stop_sequences = _parse_stop_sequences(d.pop("stop_sequences", UNSET)) @@ -263,6 +268,7 @@ def _parse_top_p(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) top_p = _parse_top_p(d.pop("top_p", UNSET)) @@ -272,6 +278,7 @@ def _parse_top_k(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) top_k = _parse_top_k(d.pop("top_k", UNSET)) @@ -281,6 +288,7 @@ def _parse_frequency_penalty(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) frequency_penalty = _parse_frequency_penalty(d.pop("frequency_penalty", UNSET)) @@ -290,6 +298,7 @@ def _parse_presence_penalty(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) presence_penalty = _parse_presence_penalty(d.pop("presence_penalty", UNSET)) @@ -299,6 +308,7 @@ def _parse_echo(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) echo = _parse_echo(d.pop("echo", UNSET)) @@ -308,6 +318,7 @@ def _parse_logprobs(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) logprobs = _parse_logprobs(d.pop("logprobs", UNSET)) @@ -317,6 +328,7 @@ def _parse_top_logprobs(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) top_logprobs = _parse_top_logprobs(d.pop("top_logprobs", UNSET)) @@ -326,6 +338,7 @@ def _parse_n(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) n = _parse_n(d.pop("n", UNSET)) @@ -335,6 +348,7 @@ def _parse_api_version(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) api_version = _parse_api_version(d.pop("api_version", UNSET)) @@ -344,6 +358,7 @@ def _parse_tools(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) tools = _parse_tools(d.pop("tools", UNSET)) @@ -353,6 +368,7 @@ def _parse_tool_choice(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) tool_choice = _parse_tool_choice(d.pop("tool_choice", UNSET)) @@ -362,6 +378,7 @@ def _parse_response_format(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) response_format = _parse_response_format(d.pop("response_format", UNSET)) @@ -371,6 +388,7 @@ def _parse_reasoning_effort(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) reasoning_effort = _parse_reasoning_effort(d.pop("reasoning_effort", UNSET)) @@ -380,6 +398,7 @@ def _parse_verbosity(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) verbosity = _parse_verbosity(d.pop("verbosity", UNSET)) @@ -389,6 +408,7 @@ def _parse_deployment_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) deployment_name = _parse_deployment_name(d.pop("deployment_name", UNSET)) diff --git a/src/splunk_ao/resources/models/run_scorer_settings_patch_request.py b/src/splunk_ao/resources/models/run_scorer_settings_patch_request.py index 73329977..58e533d2 100644 --- a/src/splunk_ao/resources/models/run_scorer_settings_patch_request.py +++ b/src/splunk_ao/resources/models/run_scorer_settings_patch_request.py @@ -80,11 +80,13 @@ def _parse_scorers(data: object) -> list[RuntimeScorerConfig] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() scorers_type_0 = [] _scorers_type_0 = data + for scorers_type_0_item_data in _scorers_type_0: scorers_type_0_item = RuntimeScorerConfig.from_dict(scorers_type_0_item_data) @@ -102,11 +104,13 @@ def _parse_segment_filters(data: object) -> list[SegmentFilter] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() segment_filters_type_0 = [] _segment_filters_type_0 = data + for segment_filters_type_0_item_data in _segment_filters_type_0: segment_filters_type_0_item = SegmentFilter.from_dict(segment_filters_type_0_item_data) diff --git a/src/splunk_ao/resources/models/run_scorer_settings_response.py b/src/splunk_ao/resources/models/run_scorer_settings_response.py index 7a745302..d40d2f0d 100644 --- a/src/splunk_ao/resources/models/run_scorer_settings_response.py +++ b/src/splunk_ao/resources/models/run_scorer_settings_response.py @@ -31,6 +31,7 @@ class RunScorerSettingsResponse: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + scorers = [] for scorers_item_data in self.scorers: scorers_item = scorers_item_data.to_dict() @@ -66,6 +67,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) scorers = [] _scorers = d.pop("scorers") + for scorers_item_data in _scorers: scorers_item = RuntimeScorerConfig.from_dict(scorers_item_data) @@ -78,11 +80,13 @@ def _parse_segment_filters(data: object) -> list[SegmentFilter] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() segment_filters_type_0 = [] _segment_filters_type_0 = data + for segment_filters_type_0_item_data in _segment_filters_type_0: segment_filters_type_0_item = SegmentFilter.from_dict(segment_filters_type_0_item_data) 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..b983b65c 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,23 @@ 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 +50,22 @@ 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/runtime_scorer_config.py b/src/splunk_ao/resources/models/runtime_scorer_config.py index 443d5834..05c42fd5 100644 --- a/src/splunk_ao/resources/models/runtime_scorer_config.py +++ b/src/splunk_ao/resources/models/runtime_scorer_config.py @@ -46,9 +46,9 @@ class RuntimeScorerConfig: scorer_version_id (None | str | Unset): filters (list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset): List of filters to apply to the scorer. - roll_up_method (None | RollUpMethodDisplayOptions | Unset): + roll_up_method (None | RollUpMethodDisplayOptions | str | Unset): name (None | str | Unset): - scorer_type (None | ScorerTypes | Unset): + scorer_type (None | ScorerTypes | str | Unset): model_name (None | str | Unset): num_judges (int | None | Unset): scorer_version (BaseScorerVersionDB | None | Unset): ScorerVersion to use for this scorer. If not provided, the @@ -57,15 +57,15 @@ class RuntimeScorerConfig: 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..). - multimodal_capabilities (list[MultimodalCapability] | None | Unset): Multimodal capabilities which this scorer - can utilize in its evaluation. + multimodal_capabilities (list[MultimodalCapability | str] | None | Unset): Multimodal capabilities which this + scorer can utilize in its evaluation. roll_up_config (BaseMetricRollUpConfigDB | None | Unset): score_type (None | str | Unset): Return type of code scorers (e.g., 'bool', 'int', 'float', 'str'). - model_type (ModelType | None | Unset): + model_type (ModelType | None | str | Unset): invocation (None | ScorerInvocationConfig | Unset): Trusted intrinsic input requirements for synchronous direct invocation. chainpoll_template (ChainPollTemplate | None | Unset): @@ -77,7 +77,7 @@ class RuntimeScorerConfig: ground_truth (bool | Unset): Default: False. requires_tools_in_llm_span (bool | Unset): Default: False. default_model_alias (None | str | Unset): - roll_up_strategy (None | RollUpStrategy | Unset): + roll_up_strategy (None | RollUpStrategy | str | Unset): required_scorers (list[str] | None | Unset): required_metric_ids (list[str] | None | Unset): instruction (None | str | Unset): @@ -86,8 +86,8 @@ class RuntimeScorerConfig: 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 (None | RuntimeScorerConfigClassNameToVocabIxType0 | RuntimeScorerConfigClassNameToVocabIxType1 | Unset): decision_question (None | str | Unset): @@ -98,20 +98,20 @@ class RuntimeScorerConfig: id: str scorer_version_id: None | str | Unset = UNSET filters: list[MetadataFilter | ModalityFilter | NodeNameFilter] | None | Unset = UNSET - roll_up_method: None | RollUpMethodDisplayOptions | Unset = UNSET + roll_up_method: None | RollUpMethodDisplayOptions | str | Unset = UNSET name: None | str | Unset = UNSET - scorer_type: None | ScorerTypes | Unset = UNSET + scorer_type: None | ScorerTypes | str | Unset = UNSET model_name: None | str | Unset = UNSET num_judges: int | None | Unset = UNSET scorer_version: BaseScorerVersionDB | 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 - 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 roll_up_config: BaseMetricRollUpConfigDB | None | Unset = UNSET score_type: None | str | Unset = UNSET - model_type: ModelType | None | Unset = UNSET + model_type: ModelType | None | str | Unset = UNSET invocation: None | ScorerInvocationConfig | Unset = UNSET chainpoll_template: ChainPollTemplate | None | Unset = UNSET metric_name: None | str | Unset = UNSET @@ -122,7 +122,7 @@ class RuntimeScorerConfig: ground_truth: bool | Unset = False requires_tools_in_llm_span: bool | Unset = False default_model_alias: None | str | Unset = UNSET - roll_up_strategy: None | RollUpStrategy | Unset = UNSET + roll_up_strategy: None | RollUpStrategy | str | Unset = UNSET required_scorers: list[str] | None | Unset = UNSET required_metric_ids: list[str] | None | Unset = UNSET instruction: None | str | Unset = UNSET @@ -131,8 +131,8 @@ class RuntimeScorerConfig: 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: ( None | RuntimeScorerConfigClassNameToVocabIxType0 | RuntimeScorerConfigClassNameToVocabIxType1 | Unset ) = UNSET @@ -257,13 +257,27 @@ def to_dict(self) -> dict[str, Any]: else: input_type = self.input_type + if ( + not isinstance(self.multimodal_capabilities, list) + and self.multimodal_capabilities is not None + and not isinstance(self.multimodal_capabilities, Unset) + ): + raise TypeError("Unexpected value type for multimodal_capabilities") + multimodal_capabilities: list[str] | None | Unset if isinstance(self.multimodal_capabilities, Unset): multimodal_capabilities = UNSET elif isinstance(self.multimodal_capabilities, list): + if not isinstance(self.multimodal_capabilities, list): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0") + 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: @@ -573,6 +587,7 @@ def _parse_scorer_version_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) scorer_version_id = _parse_scorer_version_id(d.pop("scorer_version_id", UNSET)) @@ -582,14 +597,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() @@ -623,11 +641,12 @@ def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter filters = _parse_filters(d.pop("filters", 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -636,7 +655,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)) @@ -645,15 +666,17 @@ def _parse_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) name = _parse_name(d.pop("name", UNSET)) - def _parse_scorer_type(data: object) -> None | ScorerTypes | Unset: + def _parse_scorer_type(data: object) -> None | ScorerTypes | str | Unset: if data is None: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -662,7 +685,9 @@ def _parse_scorer_type(data: object) -> None | ScorerTypes | Unset: return scorer_type_type_0 except: # noqa: E722 pass - return cast(None | ScorerTypes | Unset, data) + if type(data) not in (str,): + raise TypeError("Unexpected value type for scorer_type") + return cast(None | ScorerTypes | str | Unset, data) scorer_type = _parse_scorer_type(d.pop("scorer_type", UNSET)) @@ -671,6 +696,7 @@ def _parse_model_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", UNSET)) @@ -680,6 +706,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) @@ -689,6 +716,7 @@ def _parse_scorer_version(data: object) -> BaseScorerVersionDB | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -706,6 +734,7 @@ def _parse_scoreable_node_types(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -723,15 +752,17 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -740,15 +771,18 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -757,29 +791,54 @@ 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): return data + if not isinstance(data, list) and data is not None and not isinstance(data, Unset): + raise TypeError("Unexpected value type for multimodal_capabilities") + try: if not isinstance(data, list): raise TypeError() multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data + if not isinstance(_multimodal_capabilities_type_0, list): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0") + 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)) @@ -788,6 +847,7 @@ def _parse_roll_up_config(data: object) -> BaseMetricRollUpConfigDB | None | Uns return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -805,15 +865,17 @@ def _parse_score_type(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) score_type = _parse_score_type(d.pop("score_type", 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -822,7 +884,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)) @@ -831,6 +895,7 @@ def _parse_invocation(data: object) -> None | ScorerInvocationConfig | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -848,6 +913,7 @@ def _parse_chainpoll_template(data: object) -> ChainPollTemplate | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -865,6 +931,7 @@ def _parse_metric_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metric_name = _parse_metric_name(d.pop("metric_name", UNSET)) @@ -874,6 +941,7 @@ def _parse_scorer_path_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) scorer_path_name = _parse_scorer_path_name(d.pop("scorer_path_name", UNSET)) @@ -883,6 +951,7 @@ def _parse_user_code(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) user_code = _parse_user_code(d.pop("user_code", UNSET)) @@ -892,6 +961,7 @@ def _parse_registered_scorer_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) registered_scorer_id = _parse_registered_scorer_id(d.pop("registered_scorer_id", UNSET)) @@ -901,6 +971,7 @@ def _parse_model_alias(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_alias = _parse_model_alias(d.pop("model_alias", UNSET)) @@ -914,15 +985,17 @@ def _parse_default_model_alias(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) default_model_alias = _parse_default_model_alias(d.pop("default_model_alias", 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -931,7 +1004,9 @@ 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)) @@ -940,6 +1015,7 @@ def _parse_required_scorers(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -957,6 +1033,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -974,6 +1051,7 @@ def _parse_instruction(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) instruction = _parse_instruction(d.pop("instruction", UNSET)) @@ -983,6 +1061,7 @@ def _parse_adapter(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) adapter = _parse_adapter(d.pop("adapter", UNSET)) @@ -994,6 +1073,7 @@ def _parse_prompt(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) prompt = _parse_prompt(d.pop("prompt", UNSET)) @@ -1003,6 +1083,7 @@ def _parse_lora_task_id(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) lora_task_id = _parse_lora_task_id(d.pop("lora_task_id", UNSET)) @@ -1012,15 +1093,17 @@ def _parse_lora_weights_path(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -1029,15 +1112,18 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -1046,7 +1132,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)) @@ -1057,6 +1145,7 @@ def _parse_class_name_to_vocab_ix( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -1085,6 +1174,7 @@ def _parse_decision_question(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) decision_question = _parse_decision_question(d.pop("decision_question", UNSET)) @@ -1096,6 +1186,7 @@ def _parse_decision_answer_options( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -1109,6 +1200,7 @@ def _parse_decision_answer_options( raise TypeError() decision_answer_options_type_1 = [] _decision_answer_options_type_1 = data + for decision_answer_options_type_1_item_data in _decision_answer_options_type_1: decision_answer_options_type_1_item = DecisionChoice.from_dict( decision_answer_options_type_1_item_data @@ -1124,6 +1216,7 @@ def _parse_decision_answer_options( raise TypeError() decision_answer_options_type_2 = [] _decision_answer_options_type_2 = data + for decision_answer_options_type_2_item_data in _decision_answer_options_type_2: decision_answer_options_type_2_item = DecisionLevel.from_dict( decision_answer_options_type_2_item_data diff --git a/src/splunk_ao/resources/models/score_bucket.py b/src/splunk_ao/resources/models/score_bucket.py index 6abc6552..4a4e2a14 100644 --- a/src/splunk_ao/resources/models/score_bucket.py +++ b/src/splunk_ao/resources/models/score_bucket.py @@ -45,6 +45,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_max_exclusive(data: object) -> int | None: if data is None: return data + return cast(int | None, data) max_exclusive = _parse_max_exclusive(d.pop("max_exclusive")) 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..7db66d5a 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,23 @@ 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 +50,22 @@ 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..8d93f162 100644 --- a/src/splunk_ao/resources/models/scorer_creator_filter.py +++ b/src/splunk_ao/resources/models/scorer_creator_filter.py @@ -18,15 +18,16 @@ 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]: + value: list[str] | str if isinstance(self.value, list): value = [] @@ -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, ScorerCreatorFilterOperator): operator = self.operator.value + else: + operator = self.operator field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -59,14 +64,17 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) def _parse_value(data: object) -> list[str] | str: + try: if not isinstance(data, list): raise TypeError() value_type_1 = [] _value_type_1 = data + for value_type_1_item_data in _value_type_1: def _parse_value_type_1_item(data: object) -> str: + return cast(str, data) value_type_1_item = _parse_value_type_1_item(value_type_1_item_data) @@ -84,12 +92,23 @@ 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 33e8f0f2..e17eb769 100644 --- a/src/splunk_ao/resources/models/scorer_defaults.py +++ b/src/splunk_ao/resources/models/scorer_defaults.py @@ -32,9 +32,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..). invocation (None | ScorerInvocationConfig | Unset): Deprecated compatibility location for direct-invocation metadata. Use ScorerInfo.invocation or BaseScorerDB.invocation instead. @@ -45,8 +45,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 invocation: None | ScorerInvocationConfig | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -161,6 +161,7 @@ def _parse_model_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", UNSET)) @@ -170,6 +171,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) @@ -179,14 +181,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() @@ -225,6 +230,7 @@ def _parse_scoreable_node_types(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -242,15 +248,17 @@ def _parse_cot_enabled(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -259,15 +267,18 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -276,7 +287,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)) @@ -285,6 +298,7 @@ def _parse_invocation(data: object) -> None | ScorerInvocationConfig | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/scorer_environment.py b/src/splunk_ao/resources/models/scorer_environment.py index 9ff93297..fe4711b2 100644 --- a/src/splunk_ao/resources/models/scorer_environment.py +++ b/src/splunk_ao/resources/models/scorer_environment.py @@ -26,19 +26,14 @@ class ScorerEnvironment: runner has somewhere to persist them, not as an input to the save. Attributes: - tier (EnvironmentTier): Which execution environment serves a scorer version. - - ``standard`` is the platform-curated set baked into the executor image, so - it has no ``environments`` row -- but it does have a hash, the digest of - the pin list the image was built from. ``custom`` is resolved on demand and - gets a content-addressed row plus a warm parent of its own. + tier (EnvironmentTier | str): env_hash (str): runtime (None | str | Unset): lockfile (None | str | Unset): includes_standard (bool | Unset): Default: True. """ - tier: EnvironmentTier + tier: EnvironmentTier | str env_hash: str runtime: None | str | Unset = UNSET lockfile: None | str | Unset = UNSET @@ -46,7 +41,12 @@ class ScorerEnvironment: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - tier = self.tier.value + + tier: str + if isinstance(self.tier, EnvironmentTier): + tier = self.tier.value + else: + tier = self.tier env_hash = self.env_hash @@ -79,7 +79,22 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - tier = EnvironmentTier(d.pop("tier")) + + def _parse_tier(data: object) -> EnvironmentTier | str: + + try: + if not isinstance(data, str): + raise TypeError() + tier_type_0 = EnvironmentTier(data) + + return tier_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for tier") + return cast(EnvironmentTier | str, data) + + tier = _parse_tier(d.pop("tier")) env_hash = d.pop("env_hash") @@ -88,6 +103,7 @@ def _parse_runtime(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) runtime = _parse_runtime(d.pop("runtime", UNSET)) @@ -97,6 +113,7 @@ def _parse_lockfile(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) lockfile = _parse_lockfile(d.pop("lockfile", UNSET)) diff --git a/src/splunk_ao/resources/models/scorer_health_scores_response.py b/src/splunk_ao/resources/models/scorer_health_scores_response.py index 6d6c7c55..468a1202 100644 --- a/src/splunk_ao/resources/models/scorer_health_scores_response.py +++ b/src/splunk_ao/resources/models/scorer_health_scores_response.py @@ -24,6 +24,7 @@ class ScorerHealthScoresResponse: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + scores = [] for scores_item_data in self.scores: scores_item = scores_item_data.to_dict() @@ -42,6 +43,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) scores = [] _scores = d.pop("scores") + for scores_item_data in _scores: scores_item = ScorerVersionHealthScoreEntry.from_dict(scores_item_data) diff --git a/src/splunk_ao/resources/models/scorer_id_filter.py b/src/splunk_ao/resources/models/scorer_id_filter.py index 8d7e54c2..db391840 100644 --- a/src/splunk_ao/resources/models/scorer_id_filter.py +++ b/src/splunk_ao/resources/models/scorer_id_filter.py @@ -18,15 +18,16 @@ 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]: + value: list[str] | str if isinstance(self.value, list): value = [] @@ -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, ScorerIDFilterOperator): operator = self.operator.value + else: + operator = self.operator field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -59,14 +64,17 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) def _parse_value(data: object) -> list[str] | str: + try: if not isinstance(data, list): raise TypeError() value_type_1 = [] _value_type_1 = data + for value_type_1_item_data in _value_type_1: def _parse_value_type_1_item(data: object) -> str: + return cast(str, data) value_type_1_item = _parse_value_type_1_item(value_type_1_item_data) @@ -84,12 +92,23 @@ 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_invocation_config.py b/src/splunk_ao/resources/models/scorer_invocation_config.py index 40265615..2a50c265 100644 --- a/src/splunk_ao/resources/models/scorer_invocation_config.py +++ b/src/splunk_ao/resources/models/scorer_invocation_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,22 +18,34 @@ class ScorerInvocationConfig: """How the direct scorer-invoke API validates and serializes inputs. Attributes: - payload_format (ScorerInvocationPayloadFormat): - required_inputs (list[ScorerInvocationConfigRequiredInputsItem] | Unset): + payload_format (ScorerInvocationPayloadFormat | str): + required_inputs (list[ScorerInvocationConfigRequiredInputsItem | str] | Unset): """ - payload_format: ScorerInvocationPayloadFormat - required_inputs: list[ScorerInvocationConfigRequiredInputsItem] | Unset = UNSET + payload_format: ScorerInvocationPayloadFormat | str + required_inputs: list[ScorerInvocationConfigRequiredInputsItem | str] | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: - payload_format = self.payload_format.value + + payload_format: str + if isinstance(self.payload_format, ScorerInvocationPayloadFormat): + payload_format = self.payload_format.value + else: + payload_format = self.payload_format required_inputs: list[str] | Unset = UNSET if not isinstance(self.required_inputs, Unset): + if not isinstance(self.required_inputs, list): + raise TypeError("Unexpected value type for required_inputs") + required_inputs = [] for required_inputs_item_data in self.required_inputs: - required_inputs_item = required_inputs_item_data.value + required_inputs_item: str + if isinstance(required_inputs_item_data, ScorerInvocationConfigRequiredInputsItem): + required_inputs_item = required_inputs_item_data.value + else: + required_inputs_item = required_inputs_item_data required_inputs.append(required_inputs_item) field_dict: dict[str, Any] = {} @@ -47,14 +59,47 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) - payload_format = ScorerInvocationPayloadFormat(d.pop("payload_format")) + + def _parse_payload_format(data: object) -> ScorerInvocationPayloadFormat | str: + + try: + if not isinstance(data, str): + raise TypeError() + payload_format_type_0 = ScorerInvocationPayloadFormat(data) + + return payload_format_type_0 + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for payload_format") + return cast(ScorerInvocationPayloadFormat | str, data) + + payload_format = _parse_payload_format(d.pop("payload_format")) _required_inputs = d.pop("required_inputs", UNSET) - required_inputs: list[ScorerInvocationConfigRequiredInputsItem] | Unset = UNSET + required_inputs: list[ScorerInvocationConfigRequiredInputsItem | str] | Unset = UNSET if _required_inputs is not UNSET: + if not isinstance(_required_inputs, list): + raise TypeError("Unexpected value type for required_inputs") + required_inputs = [] for required_inputs_item_data in _required_inputs: - required_inputs_item = ScorerInvocationConfigRequiredInputsItem(required_inputs_item_data) + + def _parse_required_inputs_item(data: object) -> ScorerInvocationConfigRequiredInputsItem | str: + + try: + if not isinstance(data, str): + raise TypeError() + required_inputs_item_required_inputs_item = ScorerInvocationConfigRequiredInputsItem(data) + + return required_inputs_item_required_inputs_item + except: # noqa: E722 + pass + if type(data) not in (str,): + raise TypeError("Unexpected value type for required_inputs_item") + return cast(ScorerInvocationConfigRequiredInputsItem | str, data) + + required_inputs_item = _parse_required_inputs_item(required_inputs_item_data) required_inputs.append(required_inputs_item) 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..556fd227 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,23 @@ 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..9d1b4046 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,12 @@ 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,9 +66,25 @@ 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: if not isinstance(data, list): raise TypeError() 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..e516a097 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,23 @@ 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,9 +54,25 @@ 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: if not isinstance(data, list): raise TypeError() 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 4946c355..65ec0bdd 100644 --- a/src/splunk_ao/resources/models/scorer_multimodal_capabilities_filter.py +++ b/src/splunk_ao/resources/models/scorer_multimodal_capabilities_filter.py @@ -25,20 +25,25 @@ class ScorerMultimodalCapabilitiesFilter: with no multimodal capabilities. 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): @@ -64,9 +69,25 @@ 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: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/scorer_name_filter.py b/src/splunk_ao/resources/models/scorer_name_filter.py index 856b98de..53e207a4 100644 --- a/src/splunk_ao/resources/models/scorer_name_filter.py +++ b/src/splunk_ao/resources/models/scorer_name_filter.py @@ -16,20 +16,25 @@ 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,9 +60,25 @@ 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: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/scorer_response.py b/src/splunk_ao/resources/models/scorer_response.py index de0e744a..eb8061b2 100644 --- a/src/splunk_ao/resources/models/scorer_response.py +++ b/src/splunk_ao/resources/models/scorer_response.py @@ -37,7 +37,7 @@ class ScorerResponse: Attributes: id (str): name (str): - scorer_type (ScorerTypes): + scorer_type (ScorerTypes | str): tags (list[str]): permissions (list[Permission] | Unset): label (None | str | Unset): Default: ''. @@ -45,19 +45,19 @@ class ScorerResponse: invocation (None | ScorerInvocationConfig | Unset): Intrinsic metadata for invoking this scorer directly with query and response inputs. 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): included_fields (list[str] | Unset): Fields that can be used in the scorer to configure it. i.e. model, num_judges, etc. This enables the ui to know which fields a user can configure when they're setting a scorer @@ -76,26 +76,26 @@ class ScorerResponse: id: str name: str - scorer_type: ScorerTypes + scorer_type: ScorerTypes | str tags: list[str] permissions: list[Permission] | Unset = UNSET label: None | str | Unset = "" defaults: None | ScorerDefaults | Unset = UNSET invocation: None | ScorerInvocationConfig | 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 included_fields: list[str] | Unset = UNSET description: None | str | Unset = UNSET @@ -131,7 +131,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 @@ -231,13 +235,27 @@ def to_dict(self) -> dict[str, Any]: else: input_type = self.input_type + if ( + not isinstance(self.multimodal_capabilities, list) + and self.multimodal_capabilities is not None + and not isinstance(self.multimodal_capabilities, Unset) + ): + raise TypeError("Unexpected value type for multimodal_capabilities") + multimodal_capabilities: list[str] | None | Unset if isinstance(self.multimodal_capabilities, Unset): multimodal_capabilities = UNSET elif isinstance(self.multimodal_capabilities, list): + if not isinstance(self.multimodal_capabilities, list): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0") + 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: @@ -443,7 +461,21 @@ 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")) @@ -461,6 +493,7 @@ def _parse_label(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) label = _parse_label(d.pop("label", UNSET)) @@ -470,6 +503,7 @@ def _parse_defaults(data: object) -> None | ScorerDefaults | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -487,6 +521,7 @@ def _parse_invocation(data: object) -> None | ScorerInvocationConfig | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -504,6 +539,7 @@ def _parse_latest_version(data: object) -> BaseScorerVersionDB | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -516,11 +552,12 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -529,7 +566,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)) @@ -538,6 +577,7 @@ def _parse_ground_truth(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) ground_truth = _parse_ground_truth(d.pop("ground_truth", UNSET)) @@ -547,6 +587,7 @@ def _parse_default_version_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) default_version_id = _parse_default_version_id(d.pop("default_version_id", UNSET)) @@ -556,6 +597,7 @@ def _parse_default_version(data: object) -> BaseScorerVersionDB | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -573,6 +615,7 @@ def _parse_user_prompt(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) user_prompt = _parse_user_prompt(d.pop("user_prompt", UNSET)) @@ -582,6 +625,7 @@ def _parse_scoreable_node_types(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -594,11 +638,12 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -607,15 +652,18 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -624,29 +672,54 @@ 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): return data + if not isinstance(data, list) and data is not None and not isinstance(data, Unset): + raise TypeError("Unexpected value type for multimodal_capabilities") + try: if not isinstance(data, list): raise TypeError() multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data + if not isinstance(_multimodal_capabilities_type_0, list): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0") + 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)) @@ -655,6 +728,7 @@ def _parse_required_scorers(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -672,6 +746,7 @@ def _parse_required_metric_ids(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -689,15 +764,17 @@ def _parse_deprecated(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -706,7 +783,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)) @@ -715,6 +794,7 @@ def _parse_roll_up_config(data: object) -> BaseMetricRollUpConfigDB | None | Uns return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -734,6 +814,7 @@ def _parse_description(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) description = _parse_description(d.pop("description", UNSET)) @@ -743,6 +824,7 @@ def _parse_created_by(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) created_by = _parse_created_by(d.pop("created_by", UNSET)) @@ -752,6 +834,7 @@ def _parse_created_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -769,6 +852,7 @@ def _parse_updated_at(data: object) -> datetime.datetime | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, str): raise TypeError() @@ -795,6 +879,7 @@ def _parse_metric_color_picker_config( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -844,6 +929,7 @@ def _parse_color_threshold_config(data: object) -> MetricColorPickerNumeric | No return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -861,6 +947,7 @@ def _parse_metric_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metric_name = _parse_metric_name(d.pop("metric_name", 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..05376db8 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,25 @@ 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,9 +60,25 @@ 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: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/scorer_tags_filter.py b/src/splunk_ao/resources/models/scorer_tags_filter.py index 654bf81e..fa1510a5 100644 --- a/src/splunk_ao/resources/models/scorer_tags_filter.py +++ b/src/splunk_ao/resources/models/scorer_tags_filter.py @@ -16,20 +16,25 @@ 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,9 +60,25 @@ 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: if not isinstance(data, list): raise TypeError() diff --git a/src/splunk_ao/resources/models/scorer_type_filter.py b/src/splunk_ao/resources/models/scorer_type_filter.py index b4b0364a..a0985568 100644 --- a/src/splunk_ao/resources/models/scorer_type_filter.py +++ b/src/splunk_ao/resources/models/scorer_type_filter.py @@ -16,18 +16,23 @@ 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,9 +54,25 @@ 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: if not isinstance(data, list): raise TypeError() 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..bade58f5 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,23 @@ 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 +50,22 @@ 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/scorer_version_health_score_entry.py b/src/splunk_ao/resources/models/scorer_version_health_score_entry.py index 598a9d30..a182a3d3 100644 --- a/src/splunk_ao/resources/models/scorer_version_health_score_entry.py +++ b/src/splunk_ao/resources/models/scorer_version_health_score_entry.py @@ -102,6 +102,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_secondary(data: object) -> None | ScorerVersionHealthScoreEntrySecondaryType0: if data is None: return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/scorer_version_health_score_entry_secondary_type_0.py b/src/splunk_ao/resources/models/scorer_version_health_score_entry_secondary_type_0.py index a35392b4..cdae3041 100644 --- a/src/splunk_ao/resources/models/scorer_version_health_score_entry_secondary_type_0.py +++ b/src/splunk_ao/resources/models/scorer_version_health_score_entry_secondary_type_0.py @@ -34,6 +34,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_additional_property(data: object) -> float | None: if data is None: return data + return cast(float | None, data) additional_property = _parse_additional_property(prop_dict) diff --git a/src/splunk_ao/resources/models/segment.py b/src/splunk_ao/resources/models/segment.py index 2474a953..c45cb33e 100644 --- a/src/splunk_ao/resources/models/segment.py +++ b/src/splunk_ao/resources/models/segment.py @@ -57,6 +57,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: end = d.pop("end") def _parse_value(data: object) -> float | int | str: + return cast(float | int | str, data) value = _parse_value(d.pop("value")) @@ -66,6 +67,7 @@ def _parse_prob(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) prob = _parse_prob(d.pop("prob", UNSET)) diff --git a/src/splunk_ao/resources/models/segment_filter.py b/src/splunk_ao/resources/models/segment_filter.py index 37e25904..2c19207f 100644 --- a/src/splunk_ao/resources/models/segment_filter.py +++ b/src/splunk_ao/resources/models/segment_filter.py @@ -83,6 +83,7 @@ def _parse_filter_(data: object) -> MetadataFilter | ModalityFilter | NodeNameFi return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/session_create_request.py b/src/splunk_ao/resources/models/session_create_request.py index e686270c..5dff42bb 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 @@ -41,7 +41,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 @@ -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): @@ -146,6 +150,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -155,6 +160,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -164,22 +170,35 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) client_version = _parse_client_version(d.pop("client_version", UNSET)) @@ -191,6 +210,7 @@ def _parse_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) name = _parse_name(d.pop("name", UNSET)) @@ -200,6 +220,7 @@ def _parse_previous_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) previous_session_id = _parse_previous_session_id(d.pop("previous_session_id", UNSET)) @@ -209,6 +230,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -218,6 +240,7 @@ def _parse_user_metadata(data: object) -> None | SessionCreateRequestUserMetadat return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/session_create_response.py b/src/splunk_ao/resources/models/session_create_response.py index ffdac384..5649193a 100644 --- a/src/splunk_ao/resources/models/session_create_response.py +++ b/src/splunk_ao/resources/models/session_create_response.py @@ -71,6 +71,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_name(data: object) -> None | str: if data is None: return data + return cast(None | str, data) name = _parse_name(d.pop("name")) @@ -84,6 +85,7 @@ def _parse_previous_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) previous_session_id = _parse_previous_session_id(d.pop("previous_session_id", UNSET)) @@ -93,6 +95,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) diff --git a/src/splunk_ao/resources/models/stage_db.py b/src/splunk_ao/resources/models/stage_db.py index 51aecac7..28208b95 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 @@ -93,16 +97,28 @@ def _parse_description(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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) @@ -111,6 +127,7 @@ def _parse_version(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) version = _parse_version(d.pop("version", UNSET)) diff --git a/src/splunk_ao/resources/models/stage_metadata.py b/src/splunk_ao/resources/models/stage_metadata.py index 625587b5..31d767fc 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,21 @@ 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_rulesets_response.py b/src/splunk_ao/resources/models/stage_rulesets_response.py index 469378af..98dfe30a 100644 --- a/src/splunk_ao/resources/models/stage_rulesets_response.py +++ b/src/splunk_ao/resources/models/stage_rulesets_response.py @@ -21,7 +21,7 @@ class StageRulesetsResponse: Attributes: stage_id (str): - stage_type (StageType): + stage_type (StageType | str): version (int | None): The stage version the rulesets come from. None for a local stage that no invoke has reached yet. rulesets (list[Ruleset]): The rulesets of the version. Protect stores no ruleset order, so the list order is not @@ -29,7 +29,7 @@ class StageRulesetsResponse: """ stage_id: str - stage_type: StageType + stage_type: StageType | str version: int | None rulesets: list[Ruleset] additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -37,7 +37,11 @@ class StageRulesetsResponse: def to_dict(self) -> dict[str, Any]: stage_id = self.stage_id - 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 version: int | None version = self.version @@ -60,17 +64,33 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) stage_id = d.pop("stage_id") - 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")) def _parse_version(data: object) -> int | None: if data is None: return data + return cast(int | None, data) version = _parse_version(d.pop("version")) rulesets = [] _rulesets = d.pop("rulesets") + for rulesets_item_data in _rulesets: rulesets_item = Ruleset.from_dict(rulesets_item_data) diff --git a/src/splunk_ao/resources/models/stage_with_rulesets.py b/src/splunk_ao/resources/models/stage_with_rulesets.py index eed9ea87..89fc5574 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 @@ -97,16 +101,28 @@ def _parse_description(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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..b568594c 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,39 @@ 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") @@ -140,6 +176,7 @@ def _parse_user_action(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) user_action = _parse_user_action(d.pop("user_action", UNSET)) @@ -149,6 +186,7 @@ def _parse_documentation_link(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) documentation_link = _parse_documentation_link(d.pop("documentation_link", UNSET)) @@ -162,6 +200,7 @@ def _parse_http_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) http_status_code = _parse_http_status_code(d.pop("http_status_code", UNSET)) @@ -171,6 +210,7 @@ def _parse_source_service(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) source_service = _parse_source_service(d.pop("source_service", UNSET)) diff --git a/src/splunk_ao/resources/models/stub_trace_record.py b/src/splunk_ao/resources/models/stub_trace_record.py index 9a59e2c9..6c515def 100644 --- a/src/splunk_ao/resources/models/stub_trace_record.py +++ b/src/splunk_ao/resources/models/stub_trace_record.py @@ -176,6 +176,7 @@ def _parse_spans_item( | ExtendedToolSpanRecordWithChildren | ExtendedWorkflowSpanRecordWithChildren ): + # Discriminator-aware parsing for Extended*Record types if isinstance(data, dict) and "type" in data: type_value = data.get("type") @@ -307,6 +308,7 @@ def _parse_project_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) project_id = _parse_project_id(d.pop("project_id", UNSET)) @@ -316,6 +318,7 @@ def _parse_run_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) run_id = _parse_run_id(d.pop("run_id", UNSET)) @@ -325,6 +328,7 @@ def _parse_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_id = _parse_session_id(d.pop("session_id", UNSET)) diff --git a/src/splunk_ao/resources/models/subscription_config.py b/src/splunk_ao/resources/models/subscription_config.py index 9a43ec39..cb91e165 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]: @@ -31,9 +31,16 @@ def to_dict(self) -> dict[str, Any]: statuses: list[str] | Unset = UNSET if not isinstance(self.statuses, Unset): + if not isinstance(self.statuses, list): + raise TypeError("Unexpected value type for statuses") + 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 +57,29 @@ 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: + if not isinstance(_statuses, list): + raise TypeError("Unexpected value type for statuses") + 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_data_source_dataset.py b/src/splunk_ao/resources/models/synthetic_data_source_dataset.py index 645ddf4a..9ddfa20e 100644 --- a/src/splunk_ao/resources/models/synthetic_data_source_dataset.py +++ b/src/splunk_ao/resources/models/synthetic_data_source_dataset.py @@ -64,6 +64,7 @@ def _parse_dataset_version_index(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) dataset_version_index = _parse_dataset_version_index(d.pop("dataset_version_index", UNSET)) @@ -73,6 +74,7 @@ def _parse_row_ids(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() 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..24cd43eb 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) @@ -73,13 +73,27 @@ def to_dict(self) -> dict[str, Any]: else: source_dataset = self.source_dataset + if ( + not isinstance(self.data_types, list) + and self.data_types is not None + and not isinstance(self.data_types, Unset) + ): + raise TypeError("Unexpected value type for data_types") + data_types: list[str] | None | Unset if isinstance(self.data_types, Unset): data_types = UNSET elif isinstance(self.data_types, list): + if not isinstance(self.data_types, list): + raise TypeError("Unexpected value type for data_types_type_0") + 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: @@ -133,6 +147,7 @@ def _parse_prompt(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) prompt = _parse_prompt(d.pop("prompt", UNSET)) @@ -142,6 +157,7 @@ def _parse_instructions(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) instructions = _parse_instructions(d.pop("instructions", UNSET)) @@ -153,6 +169,7 @@ def _parse_source_dataset(data: object) -> None | SyntheticDataSourceDataset | U return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -165,25 +182,46 @@ 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): return data + if not isinstance(data, list) and data is not None and not isinstance(data, Unset): + raise TypeError("Unexpected value type for data_types") + try: if not isinstance(data, list): raise TypeError() data_types_type_0 = [] _data_types_type_0 = data + if not isinstance(_data_types_type_0, list): + raise TypeError("Unexpected value type for data_types_type_0") + 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)) @@ -194,6 +232,7 @@ def _parse_project_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) project_id = _parse_project_id(d.pop("project_id", 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..cf6e50cc 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,11 +173,12 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -186,7 +187,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)) @@ -197,6 +200,7 @@ def _parse_mean(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) mean = _parse_mean(d.pop("mean", UNSET)) @@ -206,6 +210,7 @@ def _parse_median(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) median = _parse_median(d.pop("median", UNSET)) @@ -215,6 +220,7 @@ def _parse_p5(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) p5 = _parse_p5(d.pop("p5", UNSET)) @@ -224,6 +230,7 @@ def _parse_p25(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) p25 = _parse_p25(d.pop("p25", UNSET)) @@ -233,6 +240,7 @@ def _parse_p75(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) p75 = _parse_p75(d.pop("p75", UNSET)) @@ -242,6 +250,7 @@ def _parse_p95(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) p95 = _parse_p95(d.pop("p95", UNSET)) @@ -251,6 +260,7 @@ def _parse_min_(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) min_ = _parse_min_(d.pop("min", UNSET)) @@ -260,6 +270,7 @@ def _parse_max_(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) max_ = _parse_max_(d.pop("max", UNSET)) @@ -269,6 +280,7 @@ def _parse_histogram(data: object) -> Histogram | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/test_score.py b/src/splunk_ao/resources/models/test_score.py index 65d58211..b7481e92 100644 --- a/src/splunk_ao/resources/models/test_score.py +++ b/src/splunk_ao/resources/models/test_score.py @@ -16,16 +16,21 @@ 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,13 +49,29 @@ 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: return data if isinstance(data, Unset): return data + return cast(bool | float | int | None | str | Unset, data) score = _parse_score(d.pop("score", UNSET)) 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..59627f17 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): @@ -100,14 +104,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() @@ -141,18 +148,30 @@ 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", UNSET)) 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..97fa989b 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): @@ -110,14 +114,17 @@ def _parse_filters(data: object) -> list[MetadataFilter | ModalityFilter | NodeN return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() filters_type_0 = [] _filters_type_0 = data + for filters_type_0_item_data in _filters_type_0: def _parse_filters_type_0_item(data: object) -> MetadataFilter | ModalityFilter | NodeNameFilter: + try: if not isinstance(data, dict): raise TypeError() @@ -151,18 +158,30 @@ 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) model_name = _parse_model_name(d.pop("model_name", UNSET)) @@ -172,6 +191,7 @@ def _parse_num_judges(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) num_judges = _parse_num_judges(d.pop("num_judges", UNSET)) diff --git a/src/splunk_ao/resources/models/tool_span.py b/src/splunk_ao/resources/models/tool_span.py index a349bce5..46d2d12d 100644 --- a/src/splunk_ao/resources/models/tool_span.py +++ b/src/splunk_ao/resources/models/tool_span.py @@ -284,6 +284,7 @@ def _parse_redacted_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) redacted_input = _parse_redacted_input(d.pop("redacted_input", UNSET)) @@ -293,6 +294,7 @@ def _parse_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) output = _parse_output(d.pop("output", UNSET)) @@ -302,6 +304,7 @@ def _parse_redacted_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) redacted_output = _parse_redacted_output(d.pop("redacted_output", UNSET)) @@ -329,6 +332,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -345,6 +349,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -354,6 +359,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -363,6 +369,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -379,6 +386,7 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) id = _parse_id(d.pop("id", UNSET)) @@ -388,6 +396,7 @@ def _parse_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_id = _parse_session_id(d.pop("session_id", UNSET)) @@ -397,6 +406,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -406,6 +416,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) @@ -415,6 +426,7 @@ def _parse_parent_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) parent_id = _parse_parent_id(d.pop("parent_id", UNSET)) @@ -430,6 +442,7 @@ def _parse_parent_id(data: object) -> None | str | Unset: def _parse_spans_item( data: object, ) -> AgentSpan | ControlSpan | HttpSpan | LlmSpan | RetrieverSpan | ToolSpan | WorkflowSpan: + try: if not isinstance(data, dict): raise TypeError() @@ -493,6 +506,7 @@ def _parse_tool_call_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) tool_call_id = _parse_tool_call_id(d.pop("tool_call_id", UNSET)) diff --git a/src/splunk_ao/resources/models/trace.py b/src/splunk_ao/resources/models/trace.py index 4a39ebef..204181de 100644 --- a/src/splunk_ao/resources/models/trace.py +++ b/src/splunk_ao/resources/models/trace.py @@ -338,14 +338,17 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: def _parse_input_type_1_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -376,14 +379,17 @@ def _parse_redacted_input(data: object) -> list[FileContentPart | TextContentPar return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: def _parse_redacted_input_type_1_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -414,14 +420,17 @@ def _parse_output(data: object) -> list[FileContentPart | TextContentPart] | Non return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() output_type_1 = [] _output_type_1 = data + for output_type_1_item_data in _output_type_1: def _parse_output_type_1_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -452,14 +461,17 @@ def _parse_redacted_output(data: object) -> list[FileContentPart | TextContentPa return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_output_type_1 = [] _redacted_output_type_1 = data + for redacted_output_type_1_item_data in _redacted_output_type_1: def _parse_redacted_output_type_1_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -508,6 +520,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -524,6 +537,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -533,6 +547,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -542,6 +557,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -558,6 +574,7 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) id = _parse_id(d.pop("id", UNSET)) @@ -567,6 +584,7 @@ def _parse_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_id = _parse_session_id(d.pop("session_id", UNSET)) @@ -576,6 +594,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -585,6 +604,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) @@ -594,6 +614,7 @@ def _parse_parent_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) parent_id = _parse_parent_id(d.pop("parent_id", UNSET)) @@ -609,6 +630,7 @@ def _parse_parent_id(data: object) -> None | str | Unset: def _parse_spans_item( data: object, ) -> AgentSpan | ControlSpan | HttpSpan | LlmSpan | RetrieverSpan | ToolSpan | WorkflowSpan: + try: if not isinstance(data, dict): raise TypeError() @@ -672,6 +694,7 @@ def _parse_dataset_generated_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_generated_output = _parse_dataset_generated_output(d.pop("dataset_generated_output", UNSET)) diff --git a/src/splunk_ao/resources/models/tree_choice_constraints.py b/src/splunk_ao/resources/models/tree_choice_constraints.py index d0081f7d..517d6c66 100644 --- a/src/splunk_ao/resources/models/tree_choice_constraints.py +++ b/src/splunk_ao/resources/models/tree_choice_constraints.py @@ -74,11 +74,13 @@ def _parse_choices_tree(data: object) -> list[TreeChoiceNode] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() choices_tree_type_0 = [] _choices_tree_type_0 = data + for choices_tree_type_0_item_data in _choices_tree_type_0: choices_tree_type_0_item = TreeChoiceNode.from_dict(choices_tree_type_0_item_data) @@ -96,6 +98,7 @@ def _parse_choices_tree_yaml(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) choices_tree_yaml = _parse_choices_tree_yaml(d.pop("choices_tree_yaml", UNSET)) diff --git a/src/splunk_ao/resources/models/tree_choice_db_constraints.py b/src/splunk_ao/resources/models/tree_choice_db_constraints.py index 6aeec987..bdbe9bbe 100644 --- a/src/splunk_ao/resources/models/tree_choice_db_constraints.py +++ b/src/splunk_ao/resources/models/tree_choice_db_constraints.py @@ -56,6 +56,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: choices_tree = [] _choices_tree = d.pop("choices_tree") + for choices_tree_item_data in _choices_tree: choices_tree_item = TreeChoiceNode.from_dict(choices_tree_item_data) diff --git a/src/splunk_ao/resources/models/type_safe_integration.py b/src/splunk_ao/resources/models/type_safe_integration.py index 3dfbe531..758fe579 100644 --- a/src/splunk_ao/resources/models/type_safe_integration.py +++ b/src/splunk_ao/resources/models/type_safe_integration.py @@ -77,6 +77,7 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) id = _parse_id(d.pop("id", UNSET)) @@ -94,6 +95,7 @@ def _parse_extra(data: object) -> None | TypeSafeIntegrationExtraType0 | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/update_annotation_queue_request.py b/src/splunk_ao/resources/models/update_annotation_queue_request.py index 3c85d382..b636830e 100644 --- a/src/splunk_ao/resources/models/update_annotation_queue_request.py +++ b/src/splunk_ao/resources/models/update_annotation_queue_request.py @@ -65,6 +65,7 @@ def _parse_name(data: object) -> Name | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -82,6 +83,7 @@ def _parse_description(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) description = _parse_description(d.pop("description", UNSET)) diff --git a/src/splunk_ao/resources/models/update_dataset_content_request.py b/src/splunk_ao/resources/models/update_dataset_content_request.py index 14ca7cca..1d9cbbbc 100644 --- a/src/splunk_ao/resources/models/update_dataset_content_request.py +++ b/src/splunk_ao/resources/models/update_dataset_content_request.py @@ -98,6 +98,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) edits = [] _edits = d.pop("edits") + for edits_item_data in _edits: def _parse_edits_item( @@ -112,6 +113,7 @@ def _parse_edits_item( | DatasetRenameColumn | DatasetUpdateRow ): + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/update_dataset_request.py b/src/splunk_ao/resources/models/update_dataset_request.py index d91360d2..42f229ca 100644 --- a/src/splunk_ao/resources/models/update_dataset_request.py +++ b/src/splunk_ao/resources/models/update_dataset_request.py @@ -80,6 +80,7 @@ def _parse_name(data: object) -> Name | None | str | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -97,6 +98,7 @@ def _parse_column_mapping(data: object) -> ColumnMapping | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -114,6 +116,7 @@ def _parse_draft(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) draft = _parse_draft(d.pop("draft", UNSET)) diff --git a/src/splunk_ao/resources/models/update_dataset_version_request.py b/src/splunk_ao/resources/models/update_dataset_version_request.py index 217e7686..d25a35e8 100644 --- a/src/splunk_ao/resources/models/update_dataset_version_request.py +++ b/src/splunk_ao/resources/models/update_dataset_version_request.py @@ -22,6 +22,7 @@ class UpdateDatasetVersionRequest: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + name: None | str | Unset if isinstance(self.name, Unset): name = UNSET @@ -45,6 +46,7 @@ def _parse_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) name = _parse_name(d.pop("name", UNSET)) diff --git a/src/splunk_ao/resources/models/update_prompt_template_request.py b/src/splunk_ao/resources/models/update_prompt_template_request.py index 76dc987b..a681ec6c 100644 --- a/src/splunk_ao/resources/models/update_prompt_template_request.py +++ b/src/splunk_ao/resources/models/update_prompt_template_request.py @@ -55,6 +55,7 @@ def _parse_name(data: object) -> Name | None | str | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/update_scorer_request.py b/src/splunk_ao/resources/models/update_scorer_request.py index b37d3b06..7fd3cccd 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 @@ -155,13 +155,27 @@ def to_dict(self) -> dict[str, Any]: else: input_type = self.input_type + if ( + not isinstance(self.multimodal_capabilities, list) + and self.multimodal_capabilities is not None + and not isinstance(self.multimodal_capabilities, Unset) + ): + raise TypeError("Unexpected value type for multimodal_capabilities") + multimodal_capabilities: list[str] | None | Unset if isinstance(self.multimodal_capabilities, Unset): multimodal_capabilities = UNSET elif isinstance(self.multimodal_capabilities, list): + if not isinstance(self.multimodal_capabilities, list): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0") + 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: @@ -238,6 +252,7 @@ def _parse_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) name = _parse_name(d.pop("name", UNSET)) @@ -247,6 +262,7 @@ def _parse_description(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) description = _parse_description(d.pop("description", UNSET)) @@ -256,6 +272,7 @@ def _parse_tags(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -273,6 +290,7 @@ def _parse_defaults(data: object) -> None | ScorerDefaults | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -285,11 +303,12 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -298,7 +317,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)) @@ -307,6 +328,7 @@ def _parse_ground_truth(data: object) -> bool | None | Unset: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) ground_truth = _parse_ground_truth(d.pop("ground_truth", UNSET)) @@ -316,6 +338,7 @@ def _parse_default_version_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) default_version_id = _parse_default_version_id(d.pop("default_version_id", UNSET)) @@ -325,6 +348,7 @@ def _parse_user_prompt(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) user_prompt = _parse_user_prompt(d.pop("user_prompt", UNSET)) @@ -334,6 +358,7 @@ def _parse_scoreable_node_types(data: object) -> list[str] | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -346,11 +371,12 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -359,15 +385,18 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -376,37 +405,63 @@ 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): return data + if not isinstance(data, list) and data is not None and not isinstance(data, Unset): + raise TypeError("Unexpected value type for multimodal_capabilities") + try: if not isinstance(data, list): raise TypeError() multimodal_capabilities_type_0 = [] _multimodal_capabilities_type_0 = data + if not isinstance(_multimodal_capabilities_type_0, list): + raise TypeError("Unexpected value type for multimodal_capabilities_type_0") + 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -415,7 +470,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)) @@ -433,6 +490,7 @@ def _parse_metric_color_picker_config( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/upsert_dataset_content_request.py b/src/splunk_ao/resources/models/upsert_dataset_content_request.py index 759afa94..a34439b9 100644 --- a/src/splunk_ao/resources/models/upsert_dataset_content_request.py +++ b/src/splunk_ao/resources/models/upsert_dataset_content_request.py @@ -51,6 +51,7 @@ def _parse_version_index(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) version_index = _parse_version_index(d.pop("version_index", 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..ae49ec59 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,21 @@ 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")) @@ -121,6 +139,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_first_name(data: object) -> None | str: if data is None: return data + return cast(None | str, data) first_name = _parse_first_name(d.pop("first_name")) @@ -128,6 +147,7 @@ def _parse_first_name(data: object) -> None | str: def _parse_last_name(data: object) -> None | str: if data is None: return data + return cast(None | str, data) last_name = _parse_last_name(d.pop("last_name")) @@ -152,6 +172,7 @@ def _parse_progress(data: object) -> float | None | Unset: return data if isinstance(data, Unset): return data + return cast(float | None | Unset, data) progress = _parse_progress(d.pop("progress", UNSET)) diff --git a/src/splunk_ao/resources/models/user_collaborator.py b/src/splunk_ao/resources/models/user_collaborator.py index 770961ea..2d6afcc0 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,21 @@ 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")) @@ -99,6 +117,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_first_name(data: object) -> None | str: if data is None: return data + return cast(None | str, data) first_name = _parse_first_name(d.pop("first_name")) @@ -106,6 +125,7 @@ def _parse_first_name(data: object) -> None | str: def _parse_last_name(data: object) -> None | str: if data is None: return data + return cast(None | str, data) last_name = _parse_last_name(d.pop("last_name")) diff --git a/src/splunk_ao/resources/models/user_collaborator_create.py b/src/splunk_ao/resources/models/user_collaborator_create.py index 33c17014..624ba68e 100644 --- a/src/splunk_ao/resources/models/user_collaborator_create.py +++ b/src/splunk_ao/resources/models/user_collaborator_create.py @@ -20,20 +20,25 @@ 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,18 +67,31 @@ 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: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) user_id = _parse_user_id(d.pop("user_id", UNSET)) @@ -83,6 +101,7 @@ def _parse_user_email(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) user_email = _parse_user_email(d.pop("user_email", UNSET)) diff --git a/src/splunk_ao/resources/models/user_db.py b/src/splunk_ao/resources/models/user_db.py index 36483896..0d55d8ff 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): @@ -154,6 +162,7 @@ def _parse_first_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) first_name = _parse_first_name(d.pop("first_name", UNSET)) @@ -163,29 +172,53 @@ def _parse_last_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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 - _role = d.pop("role", UNSET) - role: UserRole | Unset - if isinstance(_role, Unset): - role = UNSET - else: - role = UserRole(_role) + try: + if not isinstance(data, str): + raise TypeError() + auth_method_type_0 = AuthMethod(data) + + 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: return data if isinstance(data, Unset): return data + return cast(bool | None | Unset, data) email_is_verified = _parse_email_is_verified(d.pop("email_is_verified", UNSET)) diff --git a/src/splunk_ao/resources/models/user_info.py b/src/splunk_ao/resources/models/user_info.py index a21be827..ac80bf44 100644 --- a/src/splunk_ao/resources/models/user_info.py +++ b/src/splunk_ao/resources/models/user_info.py @@ -67,6 +67,7 @@ def _parse_first_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) first_name = _parse_first_name(d.pop("first_name", UNSET)) @@ -76,6 +77,7 @@ def _parse_last_name(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) last_name = _parse_last_name(d.pop("last_name", UNSET)) diff --git a/src/splunk_ao/resources/models/valid_result.py b/src/splunk_ao/resources/models/valid_result.py index 9ec42086..b99061b5 100644 --- a/src/splunk_ao/resources/models/valid_result.py +++ b/src/splunk_ao/resources/models/valid_result.py @@ -23,20 +23,20 @@ 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): environment (None | ScorerEnvironment | 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 environment: None | ScorerEnvironment | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -45,9 +45,16 @@ def to_dict(self) -> dict[str, Any]: score_type = self.score_type + if not isinstance(self.scoreable_node_types, list): + raise TypeError("Unexpected value type for scoreable_node_types") + 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 = [] @@ -101,13 +108,32 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: scoreable_node_types = [] _scoreable_node_types = d.pop("scoreable_node_types") + if not isinstance(_scoreable_node_types, list): + raise TypeError("Unexpected value type for 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) test_scores = [] _test_scores = d.pop("test_scores") + for test_scores_item_data in _test_scores: test_scores_item = TestScore.from_dict(test_scores_item_data) @@ -119,11 +145,12 @@ 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -132,7 +159,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)) @@ -141,6 +170,7 @@ def _parse_environment(data: object) -> None | ScorerEnvironment | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/validate_decision_scorer_dataset_request.py b/src/splunk_ao/resources/models/validate_decision_scorer_dataset_request.py index bd042fb4..dd1e0406 100644 --- a/src/splunk_ao/resources/models/validate_decision_scorer_dataset_request.py +++ b/src/splunk_ao/resources/models/validate_decision_scorer_dataset_request.py @@ -143,6 +143,7 @@ def _parse_dataset_version_index(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) dataset_version_index = _parse_dataset_version_index(d.pop("dataset_version_index", UNSET)) @@ -154,6 +155,7 @@ def _parse_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) starting_token = _parse_starting_token(d.pop("starting_token", UNSET)) @@ -165,6 +167,7 @@ def _parse_answer_options( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -178,6 +181,7 @@ def _parse_answer_options( raise TypeError() answer_options_type_1 = [] _answer_options_type_1 = data + for answer_options_type_1_item_data in _answer_options_type_1: answer_options_type_1_item = DecisionChoice.from_dict(answer_options_type_1_item_data) @@ -191,6 +195,7 @@ def _parse_answer_options( raise TypeError() answer_options_type_2 = [] _answer_options_type_2 = data + for answer_options_type_2_item_data in _answer_options_type_2: answer_options_type_2_item = DecisionLevel.from_dict(answer_options_type_2_item_data) diff --git a/src/splunk_ao/resources/models/validate_decision_scorer_log_record_request.py b/src/splunk_ao/resources/models/validate_decision_scorer_log_record_request.py index 673f5c4a..7adc1754 100644 --- a/src/splunk_ao/resources/models/validate_decision_scorer_log_record_request.py +++ b/src/splunk_ao/resources/models/validate_decision_scorer_log_record_request.py @@ -293,6 +293,7 @@ def _parse_previous_last_row_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) previous_last_row_id = _parse_previous_last_row_id(d.pop("previous_last_row_id", UNSET)) @@ -302,6 +303,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -311,6 +313,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -320,6 +323,7 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) @@ -352,6 +356,7 @@ def _parse_filters_item( | LogRecordsNumberFilter | LogRecordsTextFilter ): + try: if not isinstance(data, dict): raise TypeError() @@ -424,6 +429,7 @@ def _parse_filter_tree( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -481,6 +487,7 @@ def _parse_sort(data: object) -> LogRecordsSortClause | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -506,6 +513,7 @@ def _parse_answer_options( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -519,6 +527,7 @@ def _parse_answer_options( raise TypeError() answer_options_type_1 = [] _answer_options_type_1 = data + for answer_options_type_1_item_data in _answer_options_type_1: answer_options_type_1_item = DecisionChoice.from_dict(answer_options_type_1_item_data) @@ -532,6 +541,7 @@ def _parse_answer_options( raise TypeError() answer_options_type_2 = [] _answer_options_type_2 = data + for answer_options_type_2_item_data in _answer_options_type_2: answer_options_type_2_item = DecisionLevel.from_dict(answer_options_type_2_item_data) diff --git a/src/splunk_ao/resources/models/validate_decision_scorer_manual_request.py b/src/splunk_ao/resources/models/validate_decision_scorer_manual_request.py index 2451d442..c151f6f4 100644 --- a/src/splunk_ao/resources/models/validate_decision_scorer_manual_request.py +++ b/src/splunk_ao/resources/models/validate_decision_scorer_manual_request.py @@ -137,6 +137,7 @@ def _parse_answer_options( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() @@ -150,6 +151,7 @@ def _parse_answer_options( raise TypeError() answer_options_type_1 = [] _answer_options_type_1 = data + for answer_options_type_1_item_data in _answer_options_type_1: answer_options_type_1_item = DecisionChoice.from_dict(answer_options_type_1_item_data) @@ -163,6 +165,7 @@ def _parse_answer_options( raise TypeError() answer_options_type_2 = [] _answer_options_type_2 = data + for answer_options_type_2_item_data in _answer_options_type_2: answer_options_type_2_item = DecisionLevel.from_dict(answer_options_type_2_item_data) @@ -190,6 +193,7 @@ def _parse_reference_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) reference_output = _parse_reference_output(d.pop("reference_output", UNSET)) diff --git a/src/splunk_ao/resources/models/validate_llm_scorer_dataset_request.py b/src/splunk_ao/resources/models/validate_llm_scorer_dataset_request.py index 0ca432e9..6d3c3624 100644 --- a/src/splunk_ao/resources/models/validate_llm_scorer_dataset_request.py +++ b/src/splunk_ao/resources/models/validate_llm_scorer_dataset_request.py @@ -159,6 +159,7 @@ def _parse_dataset_version_index(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) dataset_version_index = _parse_dataset_version_index(d.pop("dataset_version_index", UNSET)) @@ -170,6 +171,7 @@ def _parse_starting_token(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) starting_token = _parse_starting_token(d.pop("starting_token", UNSET)) @@ -179,14 +181,17 @@ def _parse_normalized_input(data: object) -> list[FileContentPart | TextContentP return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() normalized_input_type_0 = [] _normalized_input_type_0 = data + for normalized_input_type_0_item_data in _normalized_input_type_0: def _parse_normalized_input_type_0_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -219,6 +224,7 @@ def _parse_sort(data: object) -> None | Unset | ValidateLLMScorerDatasetRequestS return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/validate_llm_scorer_log_record_request.py b/src/splunk_ao/resources/models/validate_llm_scorer_log_record_request.py index cf272f18..1d1f0003 100644 --- a/src/splunk_ao/resources/models/validate_llm_scorer_log_record_request.py +++ b/src/splunk_ao/resources/models/validate_llm_scorer_log_record_request.py @@ -302,6 +302,7 @@ def _parse_previous_last_row_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) previous_last_row_id = _parse_previous_last_row_id(d.pop("previous_last_row_id", UNSET)) @@ -311,6 +312,7 @@ def _parse_log_stream_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) log_stream_id = _parse_log_stream_id(d.pop("log_stream_id", UNSET)) @@ -320,6 +322,7 @@ def _parse_experiment_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) experiment_id = _parse_experiment_id(d.pop("experiment_id", UNSET)) @@ -329,6 +332,7 @@ def _parse_metrics_testing_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) metrics_testing_id = _parse_metrics_testing_id(d.pop("metrics_testing_id", UNSET)) @@ -361,6 +365,7 @@ def _parse_filters_item( | LogRecordsNumberFilter | LogRecordsTextFilter ): + try: if not isinstance(data, dict): raise TypeError() @@ -433,6 +438,7 @@ def _parse_filter_tree( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -490,6 +496,7 @@ def _parse_sort(data: object) -> LogRecordsSortClause | None | Unset: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -513,14 +520,17 @@ def _parse_normalized_input(data: object) -> list[FileContentPart | TextContentP return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() normalized_input_type_0 = [] _normalized_input_type_0 = data + for normalized_input_type_0_item_data in _normalized_input_type_0: def _parse_normalized_input_type_0_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/validate_registered_scorer_result.py b/src/splunk_ao/resources/models/validate_registered_scorer_result.py index dff9e4b2..1ddea9c4 100644 --- a/src/splunk_ao/resources/models/validate_registered_scorer_result.py +++ b/src/splunk_ao/resources/models/validate_registered_scorer_result.py @@ -69,6 +69,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) def _parse_result(data: object) -> InvalidResult | ValidResult: + try: if not isinstance(data, dict): raise TypeError() @@ -90,6 +91,7 @@ def _parse_task_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) task_id = _parse_task_id(d.pop("task_id", UNSET)) @@ -99,6 +101,7 @@ def _parse_scorer_sha256(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) scorer_sha256 = _parse_scorer_sha256(d.pop("scorer_sha256", UNSET)) diff --git a/src/splunk_ao/resources/models/validation_error.py b/src/splunk_ao/resources/models/validation_error.py index 6d5730aa..4af254ac 100644 --- a/src/splunk_ao/resources/models/validation_error.py +++ b/src/splunk_ao/resources/models/validation_error.py @@ -34,6 +34,7 @@ class ValidationError: additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: + loc = [] for loc_item_data in self.loc: loc_item: int | str @@ -67,9 +68,11 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: d = dict(src_dict) loc = [] _loc = d.pop("loc") + for loc_item_data in _loc: def _parse_loc_item(data: object) -> int | str: + return cast(int | str, data) loc_item = _parse_loc_item(loc_item_data) diff --git a/src/splunk_ao/resources/models/vertex_ai_integration.py b/src/splunk_ao/resources/models/vertex_ai_integration.py index 4aa3c5b4..f88a40c4 100644 --- a/src/splunk_ao/resources/models/vertex_ai_integration.py +++ b/src/splunk_ao/resources/models/vertex_ai_integration.py @@ -108,6 +108,7 @@ def _parse_multi_modal_config(data: object) -> MultiModalModelIntegrationConfig return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -125,6 +126,7 @@ def _parse_gcs_config(data: object) -> None | Unset | VertexAIGCSConfigResponse: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -142,6 +144,7 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) id = _parse_id(d.pop("id", UNSET)) @@ -159,6 +162,7 @@ def _parse_extra(data: object) -> None | Unset | VertexAIIntegrationExtraType0: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/vertex_ai_integration_create.py b/src/splunk_ao/resources/models/vertex_ai_integration_create.py index 87b1b27e..848aabab 100644 --- a/src/splunk_ao/resources/models/vertex_ai_integration_create.py +++ b/src/splunk_ao/resources/models/vertex_ai_integration_create.py @@ -76,6 +76,7 @@ def _parse_multi_modal_config(data: object) -> MultiModalModelIntegrationConfig return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -93,6 +94,7 @@ def _parse_gcs_config(data: object) -> None | Unset | VertexAIGCSConfig: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/web_search_action.py b/src/splunk_ao/resources/models/web_search_action.py index b8863300..aff5b8e4 100644 --- a/src/splunk_ao/resources/models/web_search_action.py +++ b/src/splunk_ao/resources/models/web_search_action.py @@ -63,6 +63,7 @@ def _parse_query(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) query = _parse_query(d.pop("query", UNSET)) @@ -72,6 +73,7 @@ def _parse_sources(data: object) -> Any | None | Unset: return data if isinstance(data, Unset): return data + return cast(Any | None | Unset, data) sources = _parse_sources(d.pop("sources", 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..e522e650 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) @@ -106,15 +106,17 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) 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): return data + try: if not isinstance(data, str): raise TypeError() @@ -123,7 +125,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)) @@ -132,6 +136,7 @@ def _parse_metadata(data: object) -> None | Unset | WebSearchCallEventMetadataTy return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -149,6 +154,7 @@ def _parse_error_message(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) error_message = _parse_error_message(d.pop("error_message", UNSET)) diff --git a/src/splunk_ao/resources/models/workflow_span.py b/src/splunk_ao/resources/models/workflow_span.py index 2c4bbf51..df41eafc 100644 --- a/src/splunk_ao/resources/models/workflow_span.py +++ b/src/splunk_ao/resources/models/workflow_span.py @@ -371,11 +371,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | list[Message] | str | Unset: if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() input_type_1 = [] _input_type_1 = data + for input_type_1_item_data in _input_type_1: input_type_1_item = Message.from_dict(input_type_1_item_data) @@ -389,9 +391,11 @@ def _parse_input_(data: object) -> list[FileContentPart | TextContentPart] | lis raise TypeError() input_type_2 = [] _input_type_2 = data + for input_type_2_item_data in _input_type_2: def _parse_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -424,11 +428,13 @@ def _parse_redacted_input( return data if isinstance(data, Unset): return data + try: if not isinstance(data, list): raise TypeError() redacted_input_type_1 = [] _redacted_input_type_1 = data + for redacted_input_type_1_item_data in _redacted_input_type_1: redacted_input_type_1_item = Message.from_dict(redacted_input_type_1_item_data) @@ -442,9 +448,11 @@ def _parse_redacted_input( raise TypeError() redacted_input_type_2 = [] _redacted_input_type_2 = data + for redacted_input_type_2_item_data in _redacted_input_type_2: def _parse_redacted_input_type_2_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -477,6 +485,7 @@ def _parse_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -490,6 +499,7 @@ def _parse_output( raise TypeError() output_type_2 = [] _output_type_2 = data + for output_type_2_item_data in _output_type_2: output_type_2_item = Document.from_dict(output_type_2_item_data) @@ -503,9 +513,11 @@ def _parse_output( raise TypeError() output_type_3 = [] _output_type_3 = data + for output_type_3_item_data in _output_type_3: def _parse_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -549,6 +561,7 @@ def _parse_redacted_output( return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() @@ -562,6 +575,7 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_2 = [] _redacted_output_type_2 = data + for redacted_output_type_2_item_data in _redacted_output_type_2: redacted_output_type_2_item = Document.from_dict(redacted_output_type_2_item_data) @@ -575,9 +589,11 @@ def _parse_redacted_output( raise TypeError() redacted_output_type_3 = [] _redacted_output_type_3 = data + for redacted_output_type_3_item_data in _redacted_output_type_3: def _parse_redacted_output_type_3_item(data: object) -> FileContentPart | TextContentPart: + try: if not isinstance(data, dict): raise TypeError() @@ -637,6 +653,7 @@ def _parse_status_code(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) status_code = _parse_status_code(d.pop("status_code", UNSET)) @@ -653,6 +670,7 @@ def _parse_external_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) external_id = _parse_external_id(d.pop("external_id", UNSET)) @@ -662,6 +680,7 @@ def _parse_dataset_input(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_input = _parse_dataset_input(d.pop("dataset_input", UNSET)) @@ -671,6 +690,7 @@ def _parse_dataset_output(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) dataset_output = _parse_dataset_output(d.pop("dataset_output", UNSET)) @@ -687,6 +707,7 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) id = _parse_id(d.pop("id", UNSET)) @@ -696,6 +717,7 @@ def _parse_session_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) session_id = _parse_session_id(d.pop("session_id", UNSET)) @@ -705,6 +727,7 @@ def _parse_trace_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) trace_id = _parse_trace_id(d.pop("trace_id", UNSET)) @@ -714,6 +737,7 @@ def _parse_step_number(data: object) -> int | None | Unset: return data if isinstance(data, Unset): return data + return cast(int | None | Unset, data) step_number = _parse_step_number(d.pop("step_number", UNSET)) @@ -723,6 +747,7 @@ def _parse_parent_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) parent_id = _parse_parent_id(d.pop("parent_id", UNSET)) @@ -738,6 +763,7 @@ def _parse_parent_id(data: object) -> None | str | Unset: def _parse_spans_item( data: object, ) -> AgentSpan | ControlSpan | HttpSpan | LlmSpan | RetrieverSpan | ToolSpan | WorkflowSpan: + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/write_health_score_request.py b/src/splunk_ao/resources/models/write_health_score_request.py index 7d8344f3..13751501 100644 --- a/src/splunk_ao/resources/models/write_health_score_request.py +++ b/src/splunk_ao/resources/models/write_health_score_request.py @@ -72,6 +72,7 @@ def _parse_secondary(data: object) -> None | Unset | WriteHealthScoreRequestSeco return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() diff --git a/src/splunk_ao/resources/models/write_health_score_request_secondary_type_0.py b/src/splunk_ao/resources/models/write_health_score_request_secondary_type_0.py index 75682f66..755e5ccd 100644 --- a/src/splunk_ao/resources/models/write_health_score_request_secondary_type_0.py +++ b/src/splunk_ao/resources/models/write_health_score_request_secondary_type_0.py @@ -34,6 +34,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: def _parse_additional_property(data: object) -> float | None: if data is None: return data + return cast(float | None, data) additional_property = _parse_additional_property(prop_dict) diff --git a/src/splunk_ao/resources/models/writer_integration.py b/src/splunk_ao/resources/models/writer_integration.py index a598dcdf..f6187779 100644 --- a/src/splunk_ao/resources/models/writer_integration.py +++ b/src/splunk_ao/resources/models/writer_integration.py @@ -82,6 +82,7 @@ def _parse_id(data: object) -> None | str | Unset: return data if isinstance(data, Unset): return data + return cast(None | str | Unset, data) id = _parse_id(d.pop("id", UNSET)) @@ -99,6 +100,7 @@ def _parse_extra(data: object) -> None | Unset | WriterIntegrationExtraType0: return data if isinstance(data, Unset): return data + try: if not isinstance(data, dict): raise TypeError() 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..6bd8bd80 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 == "future_role": + assert type(parsed_run.creator.role) is str + assert parsed_run.creator.role == role + else: + assert parsed_run.creator.role is UserRole(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..6b25b908 --- /dev/null +++ b/tests/test_api_enums.py @@ -0,0 +1,205 @@ +"""Forward compatibility of generated API enum parsing.""" + +from typing import Any + +import pytest + +from splunk_ao.resources.models.available_integrations import AvailableIntegrations +from splunk_ao.resources.models.base_metric_roll_up_config_db import BaseMetricRollUpConfigDB +from splunk_ao.resources.models.categorical_roll_up_method import CategoricalRollUpMethod +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.project_db import ProjectDB +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", ["future_role", "another_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) + + +@pytest.mark.parametrize("role", ["user", "capability_based"]) +def test_known_user_role_remains_an_enum(user_payload: dict[str, Any], role: str) -> None: + # Given: a known role in the response + user_payload["role"] = role + + # When: parsing the user response + user = UserDB.from_dict(user_payload) + + # Then: existing enum comparisons and serialization keep working + assert user.role is UserRole(role) + assert user.to_dict()["role"] == role + + +@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": "future_permission_action", "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 == "future_permission_action" + assert permission.to_dict() == payload + + +@pytest.mark.parametrize("action", ["rename", "configure_rate_limit"]) +def test_permission_uses_known_enum_before_raw_string_fallback(action: str) -> None: + # Given: an action from a later enum in the permission union + payload = {"action": action, "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(action) + 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" + + +@pytest.mark.parametrize("method", ["category_count", "future_method"]) +def test_roll_up_methods_preserve_known_members_and_unknown_strings(method: str) -> None: + """The first array alternative must not hide a known categorical member.""" + config = BaseMetricRollUpConfigDB.from_dict({"roll_up_methods": [method]}) + if method == "category_count": + assert config.roll_up_methods[0] is CategoricalRollUpMethod.CATEGORY_COUNT + else: + assert type(config.roll_up_methods[0]) is str + assert config.to_dict() == {"roll_up_methods": [method]} + + +@pytest.mark.parametrize("integrations", ["future_provider", {"future_provider": True}, 1]) +def test_integration_enum_array_rejects_non_arrays(integrations: object) -> None: + """The enclosing array shape stays strict when its items are extensible.""" + with pytest.raises(TypeError): + AvailableIntegrations.from_dict({"integrations": integrations}) + + +def test_project_lookup_preserves_future_labels() -> None: + """Reusable single-member enums must support future server values.""" + payload = { + "id": "project-id", + "created_by": "user-id", + "created_by_user": {"id": "user-id", "email": "user@example.com"}, + "runs": [], + "created_at": "2026-01-01T00:00:00+00:00", + "updated_at": "2026-01-01T00:00:00+00:00", + "labels": ["future_label"], + } + project = ProjectDB.from_dict(payload) + assert project.labels == ["future_label"] + assert project.to_dict()["labels"] == ["future_label"] 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..556a0254 --- /dev/null +++ b/tests/test_prepare_open_enums.py @@ -0,0 +1,246 @@ +"""Schema preparation for extensible generated enums.""" + +import importlib +import json +import sys +from collections.abc import Iterator +from copy import deepcopy +from pathlib import Path +from types import ModuleType +from typing import Any + +import pytest +from openapi_python_client import generate +from openapi_python_client.config import Config, ConfigFile, MetaType + +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", "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"} + + +@pytest.fixture(scope="module") +def generated_models(tmp_path_factory: pytest.TempPathFactory) -> Iterator[ModuleType]: + """Generate and import a small client that exercises the schema boundaries.""" + root = tmp_path_factory.mktemp("open-enum-client") + schema = { + "openapi": "3.1.0", + "info": {"title": "Enum fixture", "version": "1"}, + "paths": {}, + "components": { + "schemas": { + "Role": {"type": "string", "enum": ["user", "admin"]}, + "InferredRole": {"enum": ["user", "admin"]}, + "NullableRole": {"type": ["string", "null"], "enum": ["user", "admin", None]}, + "ClosedRole": {"type": "string", "enum": ["user", "admin"], "x-ms-enum": {"modelAsString": False}}, + "Label": {"type": "string", "enum": ["sample"]}, + "NumericMethod": {"type": "string", "enum": ["mean", "sum"]}, + "CategoricalMethod": {"type": "string", "enum": ["category_count"]}, + "User": { + "type": "object", + "properties": { + "role": {"type": "string", "enum": ["user", "admin"]}, + "wrapped_role": {"allOf": [{"$ref": "#/components/schemas/Role"}], "default": "user"}, + "nullable_wrapped_role": { + "anyOf": [{"allOf": [{"$ref": "#/components/schemas/Role"}]}, {"type": "null"}] + }, + "inferred_role": {"$ref": "#/components/schemas/InferredRole"}, + "nullable_role": {"$ref": "#/components/schemas/NullableRole"}, + "closed_role": {"$ref": "#/components/schemas/ClosedRole"}, + "labels": {"type": "array", "items": {"$ref": "#/components/schemas/Label"}}, + "role_groups": { + "type": "array", + "items": {"type": "array", "items": {"$ref": "#/components/schemas/Role"}}, + }, + "nullable_roles": { + "anyOf": [ + {"type": "array", "items": {"type": "string", "enum": ["user", "admin"]}}, + {"type": "null"}, + ] + }, + "methods": { + "anyOf": [ + {"type": "array", "items": {"$ref": "#/components/schemas/NumericMethod"}}, + {"type": "array", "items": {"$ref": "#/components/schemas/CategoricalMethod"}}, + {"type": "null"}, + ] + }, + }, + }, + "Cat": {"type": "object", "properties": {"kind": {"type": "string", "enum": ["cat"]}}}, + "RoleMap": {"type": "object", "additionalProperties": {"type": "string", "enum": ["reader", "writer"]}}, + "Dog": {"type": "object", "properties": {"kind": {"type": "string", "enum": ["dog"]}}}, + "Animal": { + "oneOf": [{"$ref": "#/components/schemas/Cat"}, {"$ref": "#/components/schemas/Dog"}], + "discriminator": {"propertyName": "kind"}, + }, + } + }, + } + original = deepcopy(schema) + prepared = prepare_open_enums(schema) + assert schema == original + assert prepare_open_enums(prepared) == prepared + assert prepared["components"]["schemas"]["Cat"] == schema["components"]["schemas"]["Cat"] + spec = root / "openapi.json" + spec.write_text(json.dumps(prepared)) + config = Config.from_sources(ConfigFile(post_hooks=[]), MetaType.NONE, spec, "utf-8", False, root / "enum_fixture") + assert not generate(config=config, custom_template_path=Path(__file__).parent.parent / "codegen_templates") + sys.path.insert(0, str(root)) + try: + yield importlib.import_module("enum_fixture.models") + finally: + sys.path.remove(str(root)) + for name in list(sys.modules): + if name == "enum_fixture" or name.startswith("enum_fixture."): + del sys.modules[name] + + +@pytest.mark.parametrize("field", ["role", "wrapped_role", "nullable_wrapped_role", "inferred_role", "nullable_role"]) +def test_generated_enum_shapes_preserve_known_and_future_values(generated_models: ModuleType, field: str) -> None: + """Supported enum schema shapes all produce scalar fields with lossless fallback.""" + for value in ["user", "future_role"]: + user = generated_models.User.from_dict({field: value}) + parsed = getattr(user, field) + assert parsed == value + if value == "future_role": + assert type(parsed) is str + else: + assert parsed.value == "user" + assert user.to_dict()[field] == value + assert generated_models.User().wrapped_role.value == "user" + assert generated_models.User.from_dict({"nullable_role": None}).nullable_role is None + + +def test_generated_inline_enum_keeps_its_original_class_name(generated_models: ModuleType) -> None: + """The wrapper must not add Type0 to the original inline enum class name.""" + assert generated_models.User.from_dict({"role": "user"}).role is generated_models.UserRole.USER + user = generated_models.User.from_dict({"nullable_roles": ["user", "future_role"]}) + assert user.nullable_roles[0] is generated_models.UserNullableRolesType0Item.USER + assert type(user.nullable_roles[1]) is str + mapping = generated_models.RoleMap.from_dict({"x": "reader", "y": "future_role"}) + assert mapping["x"] is generated_models.RoleMapAdditionalProperty.READER + assert mapping.to_dict() == {"x": "reader", "y": "future_role"} + + +def test_generated_enum_arrays_try_all_known_item_types(generated_models: ModuleType) -> None: + """A known later enum member must beat a primitive fallback in an earlier array.""" + user = generated_models.User.from_dict({"methods": ["category_count", "mean", "future_method"], "labels": ["new"]}) + assert user.methods[0] is generated_models.CategoricalMethod.CATEGORY_COUNT + assert user.methods[1] is generated_models.NumericMethod.MEAN + assert type(user.methods[2]) is str + assert user.to_dict()["methods"] == ["category_count", "mean", "future_method"] + assert user.labels == ["new"] + assert generated_models.User.from_dict({"labels": ["sample"]}).labels[0] is generated_models.Label.SAMPLE + assert generated_models.User.from_dict({"methods": None}).to_dict()["methods"] is None + + +@pytest.mark.parametrize("field", ["labels", "methods", "role_groups"]) +@pytest.mark.parametrize("value", ["future_value", {"future_value": True}, 1]) +def test_generated_enum_arrays_reject_non_arrays(generated_models: ModuleType, field: str, value: object) -> None: + """Opening array items must not relax the enclosing container's shape.""" + with pytest.raises(TypeError): + generated_models.User.from_dict({field: value}) + with pytest.raises(TypeError): + generated_models.User(**{field: value}).to_dict() + + +@pytest.mark.parametrize("value", ["future_value", {"future_value": True}]) +def test_generated_nested_enum_arrays_reject_non_arrays(generated_models: ModuleType, value: object) -> None: + """Both outer and nested enum-array containers must retain their shape.""" + with pytest.raises(TypeError): + generated_models.User.from_dict({"role_groups": [value]}) + with pytest.raises(TypeError): + generated_models.User(role_groups=[value]).to_dict() + + +def test_generated_discriminator_enum_stays_closed(generated_models: ModuleType) -> None: + """A singleton discriminator is a tag, rather than an extensible data enum.""" + assert generated_models.Cat.from_dict({"kind": "cat"}).kind.value == "cat" + with pytest.raises(ValueError): + generated_models.Cat.from_dict({"kind": "future_animal"}) + with pytest.raises(ValueError): + generated_models.User.from_dict({"closed_role": "future_role"}) 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)