# coding: utf-8 """ goose-server An AI agent The version of the OpenAPI document: 1.9.0 Contact: ai-oss-tools@block.xyz Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. """ # noqa: E501 from __future__ import annotations import json import pprint from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator from typing import Any, List, Optional from goose_api.models.message_content_one_of import MessageContentOneOf from goose_api.models.message_content_one_of1 import MessageContentOneOf1 from goose_api.models.message_content_one_of2 import MessageContentOneOf2 from goose_api.models.message_content_one_of3 import MessageContentOneOf3 from goose_api.models.message_content_one_of4 import MessageContentOneOf4 from goose_api.models.message_content_one_of5 import MessageContentOneOf5 from goose_api.models.message_content_one_of6 import MessageContentOneOf6 from goose_api.models.message_content_one_of7 import MessageContentOneOf7 from goose_api.models.message_content_one_of8 import MessageContentOneOf8 from goose_api.models.message_content_one_of9 import MessageContentOneOf9 from pydantic import StrictStr, Field from typing import Union, List, Set, Optional, Dict from typing_extensions import Literal, Self MESSAGECONTENT_ONE_OF_SCHEMAS = ["MessageContentOneOf", "MessageContentOneOf1", "MessageContentOneOf2", "MessageContentOneOf3", "MessageContentOneOf4", "MessageContentOneOf5", "MessageContentOneOf6", "MessageContentOneOf7", "MessageContentOneOf8", "MessageContentOneOf9"] class MessageContent(BaseModel): """ Content passed inside a message, which can be both simple content and tool content """ # data type: MessageContentOneOf oneof_schema_1_validator: Optional[MessageContentOneOf] = None # data type: MessageContentOneOf1 oneof_schema_2_validator: Optional[MessageContentOneOf1] = None # data type: MessageContentOneOf2 oneof_schema_3_validator: Optional[MessageContentOneOf2] = None # data type: MessageContentOneOf3 oneof_schema_4_validator: Optional[MessageContentOneOf3] = None # data type: MessageContentOneOf4 oneof_schema_5_validator: Optional[MessageContentOneOf4] = None # data type: MessageContentOneOf5 oneof_schema_6_validator: Optional[MessageContentOneOf5] = None # data type: MessageContentOneOf6 oneof_schema_7_validator: Optional[MessageContentOneOf6] = None # data type: MessageContentOneOf7 oneof_schema_8_validator: Optional[MessageContentOneOf7] = None # data type: MessageContentOneOf8 oneof_schema_9_validator: Optional[MessageContentOneOf8] = None # data type: MessageContentOneOf9 oneof_schema_10_validator: Optional[MessageContentOneOf9] = None actual_instance: Optional[Union[MessageContentOneOf, MessageContentOneOf1, MessageContentOneOf2, MessageContentOneOf3, MessageContentOneOf4, MessageContentOneOf5, MessageContentOneOf6, MessageContentOneOf7, MessageContentOneOf8, MessageContentOneOf9]] = None one_of_schemas: Set[str] = { "MessageContentOneOf", "MessageContentOneOf1", "MessageContentOneOf2", "MessageContentOneOf3", "MessageContentOneOf4", "MessageContentOneOf5", "MessageContentOneOf6", "MessageContentOneOf7", "MessageContentOneOf8", "MessageContentOneOf9" } model_config = ConfigDict( validate_assignment=True, protected_namespaces=(), ) discriminator_value_class_map: Dict[str, str] = { } def __init__(self, *args, **kwargs) -> None: if args: if len(args) > 1: raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") if kwargs: raise ValueError("If a position argument is used, keyword arguments cannot be used.") super().__init__(actual_instance=args[0]) else: super().__init__(**kwargs) @field_validator('actual_instance') def actual_instance_must_validate_oneof(cls, v): instance = MessageContent.model_construct() error_messages = [] match = 0 # validate data type: MessageContentOneOf if not isinstance(v, MessageContentOneOf): error_messages.append(f"Error! Input type `{type(v)}` is not `MessageContentOneOf`") else: match += 1 # validate data type: MessageContentOneOf1 if not isinstance(v, MessageContentOneOf1): error_messages.append(f"Error! Input type `{type(v)}` is not `MessageContentOneOf1`") else: match += 1 # validate data type: MessageContentOneOf2 if not isinstance(v, MessageContentOneOf2): error_messages.append(f"Error! Input type `{type(v)}` is not `MessageContentOneOf2`") else: match += 1 # validate data type: MessageContentOneOf3 if not isinstance(v, MessageContentOneOf3): error_messages.append(f"Error! Input type `{type(v)}` is not `MessageContentOneOf3`") else: match += 1 # validate data type: MessageContentOneOf4 if not isinstance(v, MessageContentOneOf4): error_messages.append(f"Error! Input type `{type(v)}` is not `MessageContentOneOf4`") else: match += 1 # validate data type: MessageContentOneOf5 if not isinstance(v, MessageContentOneOf5): error_messages.append(f"Error! Input type `{type(v)}` is not `MessageContentOneOf5`") else: match += 1 # validate data type: MessageContentOneOf6 if not isinstance(v, MessageContentOneOf6): error_messages.append(f"Error! Input type `{type(v)}` is not `MessageContentOneOf6`") else: match += 1 # validate data type: MessageContentOneOf7 if not isinstance(v, MessageContentOneOf7): error_messages.append(f"Error! Input type `{type(v)}` is not `MessageContentOneOf7`") else: match += 1 # validate data type: MessageContentOneOf8 if not isinstance(v, MessageContentOneOf8): error_messages.append(f"Error! Input type `{type(v)}` is not `MessageContentOneOf8`") else: match += 1 # validate data type: MessageContentOneOf9 if not isinstance(v, MessageContentOneOf9): error_messages.append(f"Error! Input type `{type(v)}` is not `MessageContentOneOf9`") else: match += 1 if match > 1: # more than 1 match raise ValueError("Multiple matches found when setting `actual_instance` in MessageContent with oneOf schemas: MessageContentOneOf, MessageContentOneOf1, MessageContentOneOf2, MessageContentOneOf3, MessageContentOneOf4, MessageContentOneOf5, MessageContentOneOf6, MessageContentOneOf7, MessageContentOneOf8, MessageContentOneOf9. Details: " + ", ".join(error_messages)) elif match == 0: # no match raise ValueError("No match found when setting `actual_instance` in MessageContent with oneOf schemas: MessageContentOneOf, MessageContentOneOf1, MessageContentOneOf2, MessageContentOneOf3, MessageContentOneOf4, MessageContentOneOf5, MessageContentOneOf6, MessageContentOneOf7, MessageContentOneOf8, MessageContentOneOf9. Details: " + ", ".join(error_messages)) else: return v @classmethod def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: return cls.from_json(json.dumps(obj)) @classmethod def from_json(cls, json_str: str) -> Self: """Returns the object represented by the json string""" instance = cls.model_construct() error_messages = [] match = 0 # deserialize data into MessageContentOneOf try: instance.actual_instance = MessageContentOneOf.from_json(json_str) match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) # deserialize data into MessageContentOneOf1 try: instance.actual_instance = MessageContentOneOf1.from_json(json_str) match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) # deserialize data into MessageContentOneOf2 try: instance.actual_instance = MessageContentOneOf2.from_json(json_str) match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) # deserialize data into MessageContentOneOf3 try: instance.actual_instance = MessageContentOneOf3.from_json(json_str) match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) # deserialize data into MessageContentOneOf4 try: instance.actual_instance = MessageContentOneOf4.from_json(json_str) match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) # deserialize data into MessageContentOneOf5 try: instance.actual_instance = MessageContentOneOf5.from_json(json_str) match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) # deserialize data into MessageContentOneOf6 try: instance.actual_instance = MessageContentOneOf6.from_json(json_str) match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) # deserialize data into MessageContentOneOf7 try: instance.actual_instance = MessageContentOneOf7.from_json(json_str) match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) # deserialize data into MessageContentOneOf8 try: instance.actual_instance = MessageContentOneOf8.from_json(json_str) match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) # deserialize data into MessageContentOneOf9 try: instance.actual_instance = MessageContentOneOf9.from_json(json_str) match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) if match > 1: # more than 1 match raise ValueError("Multiple matches found when deserializing the JSON string into MessageContent with oneOf schemas: MessageContentOneOf, MessageContentOneOf1, MessageContentOneOf2, MessageContentOneOf3, MessageContentOneOf4, MessageContentOneOf5, MessageContentOneOf6, MessageContentOneOf7, MessageContentOneOf8, MessageContentOneOf9. Details: " + ", ".join(error_messages)) elif match == 0: # no match raise ValueError("No match found when deserializing the JSON string into MessageContent with oneOf schemas: MessageContentOneOf, MessageContentOneOf1, MessageContentOneOf2, MessageContentOneOf3, MessageContentOneOf4, MessageContentOneOf5, MessageContentOneOf6, MessageContentOneOf7, MessageContentOneOf8, MessageContentOneOf9. Details: " + ", ".join(error_messages)) else: return instance def to_json(self) -> str: """Returns the JSON representation of the actual instance""" if self.actual_instance is None: return "null" if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): return self.actual_instance.to_json() else: return json.dumps(self.actual_instance) def to_dict(self) -> Optional[Union[Dict[str, Any], MessageContentOneOf, MessageContentOneOf1, MessageContentOneOf2, MessageContentOneOf3, MessageContentOneOf4, MessageContentOneOf5, MessageContentOneOf6, MessageContentOneOf7, MessageContentOneOf8, MessageContentOneOf9]]: """Returns the dict representation of the actual instance""" if self.actual_instance is None: return None if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): return self.actual_instance.to_dict() else: # primitive type return self.actual_instance def to_str(self) -> str: """Returns the string representation of the actual instance""" return pprint.pformat(self.model_dump())