Source code for openapi_client.models.chat_files_action_request
# coding: utf-8""" Amorphic Data Platform Amorphic Data Platform - API Definition documentation The version of the OpenAPI document: 1.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually."""# noqa: E501from__future__importannotationsimportpprintimportre# noqa: F401importjsonfrompydanticimportBaseModel,ConfigDict,Field,StrictStrfromtypingimportAny,ClassVar,Dict,List,Optionalfromopenapi_client.models.chat_files_action_request_files_innerimportChatFilesActionRequestFilesInnerfromtypingimportOptional,Setfromtyping_extensionsimportSelf
[docs]classChatFilesActionRequest(BaseModel):""" Unified request for chat file operations. - Default (no action): provide FileName to get a presigned upload URL. - action=save_to_dataset: provide DatasetId and Files (and optional PartitionKeys). """# noqa: E501chat_id:Optional[StrictStr]=Field(default=None,description="Chat ID to which the file is being uploaded",alias="ChatId")file_name:Optional[StrictStr]=Field(default=None,description="When no action is provided, file name to upload for presigned URL generation.",alias="FileName")dataset_id:Optional[StrictStr]=Field(default=None,description="When action=save_to_dataset, target dataset identifier.",alias="DatasetId")files:Optional[List[ChatFilesActionRequestFilesInner]]=Field(default=None,description="When action=save_to_dataset, list of existing chat file names to add.",alias="Files")partition_keys:Optional[Dict[str,Any]]=Field(default=None,description="Optional partition key-value map for dataset ingestion.",alias="PartitionKeys")__properties:ClassVar[List[str]]=["ChatId","FileName","DatasetId","Files","PartitionKeys"]model_config=ConfigDict(populate_by_name=True,validate_assignment=True,protected_namespaces=(),)
[docs]defto_str(self)->str:"""Returns the string representation of the model using alias"""returnpprint.pformat(self.model_dump(by_alias=True))
[docs]defto_json(self)->str:"""Returns the JSON representation of the model using alias"""# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) insteadreturnjson.dumps(self.to_dict())
[docs]@classmethoddeffrom_json(cls,json_str:str)->Optional[Self]:"""Create an instance of ChatFilesActionRequest from a JSON string"""returncls.from_dict(json.loads(json_str))
[docs]defto_dict(self)->Dict[str,Any]:"""Return the dictionary representation of the model using alias. This has the following differences from calling pydantic's `self.model_dump(by_alias=True)`: * `None` is only added to the output dict for nullable fields that were set at model initialization. Other fields with value `None` are ignored. """excluded_fields:Set[str]=set([])_dict=self.model_dump(by_alias=True,exclude=excluded_fields,exclude_none=True,)# override the default output from pydantic by calling `to_dict()` of each item in files (list)_items=[]ifself.files:for_item_filesinself.files:if_item_files:_items.append(_item_files.to_dict())_dict['Files']=_itemsreturn_dict
[docs]@classmethoddeffrom_dict(cls,obj:Optional[Dict[str,Any]])->Optional[Self]:"""Create an instance of ChatFilesActionRequest from a dict"""ifobjisNone:returnNoneifnotisinstance(obj,dict):returncls.model_validate(obj)_obj=cls.model_validate({"ChatId":obj.get("ChatId"),"FileName":obj.get("FileName"),"DatasetId":obj.get("DatasetId"),"Files":[ChatFilesActionRequestFilesInner.from_dict(_item)for_iteminobj["Files"]]ifobj.get("Files")isnotNoneelseNone,"PartitionKeys":obj.get("PartitionKeys")})return_obj