Source code for pydelfini.delfini_core.models.multipart_upload_details

from typing import Any
from typing import Dict
from typing import Type
from typing import TypeVar

from attrs import define as _attrs_define

from ..models.multipart_upload_details_target_urls import (
    MultipartUploadDetailsTargetUrls,
)


T = TypeVar("T", bound="MultipartUploadDetails")


[docs] @_attrs_define class MultipartUploadDetails: """MultipartUploadDetails model Attributes: target_urls (MultipartUploadDetailsTargetUrls): A mapping of byte ranges ("<start>-<end>", inclusive) to target URLs. upload_id (str): upload_key (str): url (str): """ target_urls: "MultipartUploadDetailsTargetUrls" upload_id: str upload_key: str url: str
[docs] def to_dict(self) -> Dict[str, Any]: """Convert to a dict""" target_urls = self.target_urls.to_dict() upload_id = self.upload_id upload_key = self.upload_key url = self.url field_dict: Dict[str, Any] = {} field_dict.update( { "targetUrls": target_urls, "uploadId": upload_id, "uploadKey": upload_key, "url": url, } ) return field_dict
[docs] @classmethod def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: """Create an instance of :py:class:`MultipartUploadDetails` from a dict""" d = src_dict.copy() target_urls = MultipartUploadDetailsTargetUrls.from_dict(d.pop("targetUrls")) upload_id = d.pop("uploadId") upload_key = d.pop("uploadKey") url = d.pop("url") multipart_upload_details = cls( target_urls=target_urls, upload_id=upload_id, upload_key=upload_key, url=url, ) return multipart_upload_details